Java'da XML'yi hızlı ve kolay bir şekilde JSON'a dönüştürmek için bazı iyi araçlar nelerdir?
import net.sf.json.JSONObject;
veya import org.json.JSONObject;
. Ayrıca hangi kavanozu eklemem gerekiyor?
Java'da XML'yi hızlı ve kolay bir şekilde JSON'a dönüştürmek için bazı iyi araçlar nelerdir?
import net.sf.json.JSONObject;
veya import org.json.JSONObject;
. Ayrıca hangi kavanozu eklemem gerekiyor?
Yanıtlar:
Java'daki JSON'un bazı harika kaynakları vardır.
Maven bağımlılığı:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
XML.java
aradığınız sınıf:
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());
}
}
}
Çıktı:
{"test": {
"attrib": "moretest",
"content": "Turn this to JSON"
}}
import net.sf.json.JSONObject;
veya import org.json.JSONObject;
. Ayrıca hangi kavanozu eklemem gerekiyor?
<test attrib="moretest" content="foo">bar</test>
?
XML Dosyasını JSON'a dönüştürmek için aşağıdaki bağımlılığı ekleyin
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
buradan Jar'ı Maven Deposundan indirebilirsiniz . Sonra şu şekilde uygulayın:
String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
Java'daki JSON ile ilgili tek sorun, XML'nizin tek bir alt öğesi varsa, ancak bir dizi ise, onu bir dizi yerine bir nesneye dönüştürmesidir. Bu, dinamik olarak her zaman XML'den JSON'a dönüştürdüğünüzde sorunlara neden olabilir; burada, örnek XML'nizde yalnızca bir öğe varsa, bir nesneyi döndürürsünüz, ancak 2+ varsa, bir diziyi döndürür ve bu da JSON.
Infoscoop'un XML2JSON sınıfı, dönüştürme işleminden önce diziler olan öğeleri etiketleme yoluna sahiptir, böylece XML'de yalnızca bir çocuk olsa bile diziler düzgün bir şekilde eşlenebilir.
İşte bunun bir örneği (biraz farklı bir dilde, ancak XML2JSON bağlantısının nodelist2json () yönteminden dizilerin nasıl kullanıldığını da görebilirsiniz).
<results><result><value>1</value></result></results>
, oluşturur mu { "results" : { "result" : { "value" : "1" } } }
yoksa { "results" : [ { "result" : { "value" : "1" } } ] }
Doğrudan tutulma ile açabileceğiniz ve hepsi https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA çalıştırabileceğiniz projeyi yükledim
Teşekkür ederim
Bunu hızlı ve kolay bir şekilde buldum: Kullanılmış: 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());
}
Sorununuzun tam olarak ne olduğunu bilmiyorum, ancak XML alıyorsanız ve JSON (veya bir şey) döndürmek istiyorsanız, JAX-B'ye de bakabilirsiniz. Bu, Java POJO'ları XML ve / veya Json ile paylaşma / paylaşma standardıdır. JAX-B'yi uygulayan birden fazla kütüphane vardır, örneğin Apache'nin CXF'si.