JavaでXMLをJSONにすばやく簡単に変換するための優れたツールは何ですか?
import net.sf.json.JSONObject;
またはimport org.json.JSONObject;
。また、どのjarを含める必要がありますか?
JavaでXMLをJSONにすばやく簡単に変換するための優れたツールは何ですか?
import net.sf.json.JSONObject;
またはimport org.json.JSONObject;
。また、どのjarを含める必要がありますか?
回答:
JavaのJSONにはいくつかの優れたリソースがあります。
Maven依存関係:
<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;
。また、どのjarを含める必要がありますか?
<test attrib="moretest" content="foo">bar</test>
か?
XMLファイルをJSONに変換するには、次の依存関係を含めます
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
ここでMavenリポジトリからJarをダウンロードできます。次に、次のように実装します。
String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
JavaでのJSONの唯一の問題は、XMLに子が1つあるが配列の場合、それが配列ではなくオブジェクトに変換されることです。これは、常にXMLからJSONに動的に変換する場合に問題を引き起こす可能性があります。たとえば、サンプルXMLに要素が1つしかない場合はオブジェクトを返しますが、2 +がある場合は配列を返すため、 JSON。
InfoscoopのXML2JSONクラスには、変換を行う前に配列である要素にタグを付ける方法があるため、XMLに子が1つしかない場合でも、配列を適切にマップできます。
ここでの例(若干異なる言語で、しかし、あなたはまた、配列がXML2JSONリンクのnodelist2json()メソッドから使用されているかを確認することができます)、それを使用します。
<results><result><value>1</value></result></results>
、それは生成されます { "results" : { "result" : { "value" : "1" } } }
か { "results" : [ { "result" : { "value" : "1" } } ] }
私はあなたが直接Eclipseで開いて実行できるプロジェクトをアップロードしました ください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を調べることもできます。これは、XMLやJsonへのJava POJOのマーシャリング/アンマーシャリングの標準です。ApacheのCXFなど、JAX-Bを実装する複数のライブラリがあります。