XML में जावा को JSON में जल्दी और आसानी से परिवर्तित करने के लिए कुछ अच्छे उपकरण क्या हैं?
import net.sf.json.JSONObject;
या import org.json.JSONObject;
। इसके अलावा मुझे किस जार को शामिल करने की आवश्यकता है?
XML में जावा को JSON में जल्दी और आसानी से परिवर्तित करने के लिए कुछ अच्छे उपकरण क्या हैं?
import net.sf.json.JSONObject;
या import org.json.JSONObject;
। इसके अलावा मुझे किस जार को शामिल करने की आवश्यकता है?
जवाबों:
जावा में JSON के पास कुछ बेहतरीन संसाधन हैं।
मावेन निर्भरता:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
XML.java
वह वर्ग है जिसे आप ढूंढ रहे हैं:
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());
}
}
}
आउटपुट है:
{"test": {
"attrib": "moretest",
"content": "Turn this to JSON"
}}
import net.sf.json.JSONObject;
या import org.json.JSONObject;
। इसके अलावा मुझे किस जार को शामिल करने की आवश्यकता है?
<test attrib="moretest" content="foo">bar</test>
?
XML फ़ाइल को JSON में बदलने के लिए निम्नलिखित निर्भरता शामिल है
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
और आप यहाँ मावेन रिपोजिटरी से जार डाउनलोड कर सकते हैं । फिर के रूप में लागू करें:
String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
जावा में JSON के साथ एकमात्र समस्या यह है कि यदि आपके XML में एक ही बच्चा है, लेकिन यह एक सरणी है, तो यह इसे एक सरणी के बजाय एक ऑब्जेक्ट में बदल देगा। यह समस्याएँ पैदा कर सकता है यदि आप डायनामिक रूप से हमेशा XML से JSON में परिवर्तित होते हैं, जहाँ यदि आपके उदाहरण में XML में केवल एक ही तत्व है, तो आप एक ऑब्जेक्ट लौटाते हैं, लेकिन यदि इसमें 2+ है, तो आप एक सरणी लौटाते हैं, जो लोगों के लिए पार्सिंग समस्याओं का कारण बन सकता है JSON।
Infoscoop के XML2JSON वर्ग में तत्वों को टैग करने का एक तरीका है, जो रूपांतरण करने से पहले सरणियाँ हैं, ताकि सरणियों को ठीक से मैप किया जा सके, भले ही XML में एक ही बच्चा हो।
यहां इसका उपयोग करने का एक उदाहरण है (थोड़ी अलग भाषा में, लेकिन आप यह भी देख सकते हैं कि कैसे सरणियों का उपयोग nodelist2json () XML2JSON लिंक की विधि से किया गया है)।
<results><result><value>1</value></result></results>
, तो क्या यह उत्पन्न होगा { "results" : { "result" : { "value" : "1" } } }
या { "results" : [ { "result" : { "value" : "1" } } ] }
मैंने उस परियोजना को अपलोड किया है जिसे आप सीधे ग्रहण में खोल सकते हैं और चला सकते हैं https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA
धन्यवाद
मुझे यह त्वरित और आसान तरीका मिला: इस्तेमाल किया: org.json.XML
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());
}
मुझे नहीं पता कि आपकी सटीक समस्या क्या है, लेकिन यदि आप XML प्राप्त कर रहे हैं और JSON (या कुछ) वापस करना चाहते हैं तो आप JAX-B को भी देख सकते हैं। यह जावा POJO के XML और / या Json के लिए मार्शलिंग / अनमर्शलिंग के लिए एक मानक है। ऐसे कई पुस्तकालय हैं जो JAX-B को लागू करते हैं, उदाहरण के लिए Apache's CXF।