أسرع طريقة لتحويل XML إلى JSON في Java



(4)

ما هي بعض الأدوات الجيدة لتحويل XML بسرعة وسهولة إلى JSON في Java؟

https://src-bin.com


Answer #1

المشكلة الوحيدة في JSON في Java هي أنه إذا كان XML الخاص بك يحتوي على طفل واحد ، ولكنه مصفوفة ، فإنه يقوم بتحويله إلى كائن بدلاً من صفيف. يمكن أن يتسبب ذلك في مشاكل إذا كنت تقوم دائمًا بالتحويل من XML إلى JSON ، حيث إذا كان XML الخاص بك يحتوي على عنصر واحد فقط ، فستقوم بإرجاع كائن ، ولكن إذا كان يحتوي على 2+ ، فسوف تقوم بإرجاع صفيف ، مما قد يتسبب في تحليل مشكلات الأشخاص الذين يستخدمون JSON.

يحتوي فصل XML2JSON الخاص XML2JSON على طريقة لوضع علامات على العناصر المصفوفة قبل إجراء التحويل ، بحيث يمكن تعيين الصفائف بشكل صحيح ، حتى إذا كان هناك طفل واحد فقط في XML.

فيما يلي مثال على استخدامه (بلغة مختلفة قليلاً ، ولكن يمكنك أيضًا معرفة كيفية استخدام المصفوفات من طريقة nodelist2json () لوصلة XML2JSON).


Answer #2

لا أعرف مشكلتك بالضبط ، ولكن إذا كنت تستقبل XML وترغب في إعادة JSon (أو شيء ما) ، يمكنك أيضًا الاطلاع على JAX-B. هذا هو المعيار القياسي / unmarshaling Java POJO's إلى XML و / أو Json. توجد مكتبات متعددة تقوم بتطبيق JAX-B ، على سبيل المثال Apache's CXF.


Answer #3

لقد وجدت هذه الطريقة السريعة والسهلة: استخدمت: org.json.XML class from java-json.jar

        if (statusCode == 200 && inputStream != null) {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuilder responseStrBuilder = new StringBuilder();

            String inputStr;
            while ((inputStr = bufferedReader.readLine()) != null) {
                responseStrBuilder.append(inputStr);
            }

            jsonObject = XML.toJSONObject(responseStrBuilder.toString());
        }

Answer #4

يتضمن تحويل ملف XML إلى JSON التبعية التالية

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

ويمكنك تحميل جرة من مستودع Maven هنا . ثم نفذ على النحو التالي:

String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);




json