Java での JSON から XML への変換
- Java の org.json ライブラリを使用して JSON を XML に変換する
- Java のアンダースコアライブラリを使用して JSON を XML に変換する
- Java の Jackson ライブラリを使用して JSON を XML に変換する
このチュートリアルでは、Java で JSON を XML に変換する方法を紹介します。
JSON を XML に変換するには、org.json、underscore、Jackson などのいくつかのライブラリを使用できます。この記事では、これらのライブラリの使用方法を学び、JSON から XML への変換プロセスを確認します。
JSON は、アプリケーションがデータ交換に使用するデータ形式です。XML はマークアップ言語であり、データの転送にも使用されるのに対し、軽量でシンプルなため、アプリケーションで使用されます。
Java で JSON を XML に変換するいくつかの例から始めましょう。
Java の org.json ライブラリを使用して JSON を XML に変換する
この例では、JSONObject
と XML クラスを提供する org.json ライブラリを使用しました。JSONObject クラスを使用して JSON 文字列を JSON オブジェクトに作成し、XML クラスを使用して JSON を XML に変換しました。
XML クラスは、結果を文字列として返す静的 toString()メソッドを提供します。以下の例を参照してください。
import java.io.IOException;
import org.json.*;
public class SimpleTesting {
public static void main(String[] args) throws IOException, JSONException {
String jsonStr = "{student : { age:30, name : Kumar, technology : Java } }";
JSONObject json = new JSONObject(jsonStr);
String xml = XML.toString(json);
System.out.println(xml);
}
}
出力:
<student>
<name>Kumar</name>
<technology>Java</technology>
<age>30</age>
</student>
Java のアンダースコアライブラリを使用して JSON を XML に変換する
ここでは、underscore
ライブラリを使用して JSON
を XML
に変換しました。U
クラスと、XML
を文字列として返す静的メソッド jsonToXml()
を使用しました。以下の例を参照してください。
import com.github.underscore.lodash.U;
import java.io.IOException;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
String jsonStr =
"{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\":{\"id\":42},\"array\":[1,2,3]}";
System.out.println(jsonStr);
String xml = U.jsonToXml(jsonStr);
System.out.println(xml);
}
}
出力:
{"name":"JSON","integer":1,"double":2.0,"boolean":true,"nested":{"id":42},"array":[1,2,3]}
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>JSON</name>
<integer number="true">1</integer>
<double number="true">2.0</double>
<boolean boolean="true">true</boolean>
<nested>
<id number="true">42</id>
</nested>
<array number="true">1</array>
<array number="true">2</array>
<array number="true">3</array>
</root>
Java の Jackson ライブラリを使用して JSON を XML に変換する
ここでは、ObjectMapper
クラスを使用して JSON を読み取り、次に XmlMapper
クラスを使用して XML 形式のデータを取得しました。ここでは、jackson.databind
と jackson.dataformat
の 2つの主要なパッケージを使用しました。1つ目は JSON に関連するクラスを含み、2つ目は XML に関連するクラスを含みます。以下の例を参照してください。
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import java.io.IOException;
import java.io.StringWriter;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
final String jsonStr =
"{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\":{\"id\":42},\"array\":[1,2,3]}";
ObjectMapper jsonMapper = new ObjectMapper();
JsonNode node = jsonMapper.readValue(jsonStr, JsonNode.class);
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, true);
StringWriter sw = new StringWriter();
xmlMapper.writeValue(sw, node);
System.out.println(sw.toString());
}
}
出力:
{"name":"JSON","integer":1,"double":2.0,"boolean":true,"nested":{"id":42},"array":[1,2,3]}
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>JSON</name>
<integer number="true">1</integer>
<double number="true">2.0</double>
<boolean boolean="true">true</boolean>
<nested>
<id number="true">42</id>
</nested>
<array number="true">1</array>
<array number="true">2</array>
<array number="true">3</array>
</root>
関連記事 - Java JSON
- Java で JSON データを文字列に変換する
- Java で JSON をデシリアライズする
- Java でオブジェクトを JSON にシリアライズする
- Java での JSON データのプリティプリント
- Java での JSON 配列の処理
- Java で XML を JSON に変換する