Apa sajakah alat yang bagus untuk mengkonversi XML ke JSON dengan cepat dan mudah di Jawa?
import net.sf.json.JSONObject;
atau import org.json.JSONObject;
. Juga stoples mana yang harus saya sertakan?
Apa sajakah alat yang bagus untuk mengkonversi XML ke JSON dengan cepat dan mudah di Jawa?
import net.sf.json.JSONObject;
atau import org.json.JSONObject;
. Juga stoples mana yang harus saya sertakan?
Jawaban:
JSON di Jawa memiliki beberapa sumber yang bagus.
Ketergantungan maven:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
XML.java
adalah kelas yang Anda cari:
import org.json.JSONObject;
import org.json.XML;
public class Main {
public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING =
"<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";
public static void main(String[] args) {
try {
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);
} catch (JSONException je) {
System.out.println(je.toString());
}
}
}
Output adalah:
{"test": {
"attrib": "moretest",
"content": "Turn this to JSON"
}}
import net.sf.json.JSONObject;
atau import org.json.JSONObject;
. Juga stoples mana yang harus saya sertakan?
<test attrib="moretest" content="foo">bar</test>
?
Untuk mengonversi File XML ke JSON termasuk dependensi berikut
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
dan Anda dapat mengunduh Jar dari Maven Repository di sini . Kemudian terapkan sebagai:
String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
Satu-satunya masalah dengan JSON di Jawa adalah bahwa jika XML Anda memiliki satu anak, tetapi merupakan array, itu akan mengubahnya menjadi objek, bukan array. Ini dapat menyebabkan masalah jika Anda selalu secara dinamis mengkonversi dari XML ke JSON, di mana jika contoh XML Anda hanya memiliki satu elemen, Anda mengembalikan sebuah objek, tetapi jika memiliki 2+, Anda mengembalikan array, yang dapat menyebabkan masalah penguraian bagi orang yang menggunakan JSON.
Kelas XML2JSON dari Infoscoop memiliki cara menandai elemen yang merupakan array sebelum melakukan konversi, sehingga array dapat dipetakan dengan benar, bahkan jika hanya ada satu anak dalam XML.
Berikut ini adalah contoh menggunakannya (dalam bahasa yang sedikit berbeda, tetapi Anda juga dapat melihat bagaimana array digunakan dari metode nodelist2json () pada tautan XML2JSON).
<results><result><value>1</value></result></results>
, apakah akan menghasilkan { "results" : { "result" : { "value" : "1" } } }
atau { "results" : [ { "result" : { "value" : "1" } } ] }
Saya telah mengunggah proyek yang dapat Anda buka langsung dalam gerhana dan menjalankan itu semua https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA
Terima kasih
Saya menemukan ini dengan cara cepat dan mudah: Digunakan: org.json.XML
kelas dari 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());
}
Saya tidak tahu apa masalah sebenarnya Anda, tetapi jika Anda menerima XML dan ingin mengembalikan JSON (atau sesuatu), Anda juga dapat melihat JAX-B. Ini adalah standar untuk marshalling / unmarshalling POJO Java ke XML dan / atau Json. Ada beberapa pustaka yang mengimplementasikan JAX-B, misalnya Apache's CXF.