XML কে জাভায় দ্রুত এবং সহজেই JSON এ রূপান্তর করার জন্য কয়েকটি ভাল সরঞ্জাম কী কী?
import net.sf.json.JSONObject;
বা import org.json.JSONObject;
। এছাড়াও আমি কোন জার অন্তর্ভুক্ত করা প্রয়োজন?
XML কে জাভায় দ্রুত এবং সহজেই JSON এ রূপান্তর করার জন্য কয়েকটি ভাল সরঞ্জাম কী কী?
import net.sf.json.JSONObject;
বা import org.json.JSONObject;
। এছাড়াও আমি কোন জার অন্তর্ভুক্ত করা প্রয়োজন?
উত্তর:
জাভাতে জেএসএনের কিছু দুর্দান্ত সংস্থান রয়েছে।
মাভেন নির্ভরতা:
<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);
জাভাতে জেএসএন- এর একমাত্র সমস্যাটি হ'ল যদি আপনার এক্সএমএলটির একক সন্তান থাকে তবে এটি একটি অ্যারে হয় তবে এটি এটিকে অ্যারের পরিবর্তে কোনও আইটেমে রূপান্তরিত করবে। এটি যদি আপনি গতিশীলভাবে সর্বদা এক্সএমএল থেকে জেএসএনে রূপান্তরিত করেন তবে এটি সমস্যার কারণ হতে পারে, যেখানে আপনার উদাহরণে এক্সএমএলটির কেবল একটি উপাদান থাকে আপনি একটি বস্তু ফিরিয়ে দেন, তবে যদি এটিতে 2+ থাকে তবে আপনি একটি অ্যারে ফিরিয়ে দেন, যা ব্যবহার করে লোকের জন্য পার্সিং সমস্যা সৃষ্টি করতে পারে তাদেরকে JSON।
ইনফোসকুপের এক্সএমএল 2 জেএসওন ক্লাসে রূপান্তর করার আগে অ্যারেগুলিকে ট্যাগ করার একটি পদ্ধতি রয়েছে যাতে এক্সএমএলে কেবলমাত্র একটি শিশু থাকলেও অ্যারেগুলি সঠিকভাবে ম্যাপ করা যায়।
এটি ব্যবহারের উদাহরণ এখানে (কিছুটা আলাদা ভাষায়, তবে আপনি এটি দেখতেও পাবেন যে এক্সএমএল 2 জসন লিঙ্কের নোডেলিস্ট 2 জসন () পদ্ধতি থেকে অ্যারেগুলি কীভাবে ব্যবহৃত হয়)।
<results><result><value>1</value></result></results>
তবে এটি উত্পন্ন করবে { "results" : { "result" : { "value" : "1" } } }
বা { "results" : [ { "result" : { "value" : "1" } } ] }
আমি প্রজেক্টটি আপলোড করেছি আপনি সরাসরিগ্রহণে খুলতে পারবেন এবং এটিই চালাতে পারেন https://github.com/pareshmutha/XMLToJsonCververUsingJAVA
ধন্যবাদ
আমি এটি দ্রুত এবং সহজ org.json.XML
উপায়টি পেয়েছি : ব্যবহৃত: জাভা-জসন.জার থেকে শ্রেণি
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());
}
আপনার সঠিক সমস্যাটি কী তা আমি জানি না, তবে আপনি যদি এক্সএমএল পেয়ে থাকেন এবং জেএসএন (বা কিছু) ফেরত পেতে চান তবে আপনি জ্যাক-বি-তেও দেখতে পারেন। এটি এক্সএমএল এবং / অথবা জসনকে জাভা পোজোর মার্শেলিং / আনমারশেলিংয়ের জন্য একটি মান। এমন একাধিক গ্রন্থাগার রয়েছে যা জ্যাক্স-বি প্রয়োগ করে, উদাহরণস্বরূপ অ্যাপাচি-এর সিএক্সএফ।