在 Java 中将 JSON 转换为 XML
本教程介绍如何在 Java 中将 JSON 转换为 XML。
要将 JSON 转换为 XML,我们可以使用多个库,例如 org.json、下划线和 Jackson。在本文中,我们将学习使用这些库并查看 JSON 到 XML 的转换过程。
JSON 是应用程序用于数据交换的数据格式。由于轻量级和简单,它被应用程序使用,而 XML 是一种标记语言,也用于传输数据。
让我们从一些在 Java 中将 JSON 转换为 XML 的示例开始。
使用 Java 中的 org.json 库将 JSON 转换为 XML
在这个例子中,我们使用了 org.json 库,它提供了 JSONObject
和一个 XML 类。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 中的 underscore
库将 JSON 转换为 XML
在这里,我们使用 underscore
库将 JSON
转换为 XML
。我们使用了 U
类及其静态方法 jsonToXml()
,它以字符串形式返回 XML
。请参阅下面的示例。
import java.io.IOException;
import com.github.underscore.lodash.U;
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
;第一个包含与 JSON 相关的类,第二个包含与 XML 相关的类。请参阅下面的示例。
import java.io.IOException;
import java.io.StringWriter;
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;
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 中的动态方法调度
发布时间:2023/10/18 浏览次数:199 分类:Java
-
本教程展示了 Java 中动态方法分派的定义、优势和使用。本教程介绍了 Java 中的动态方法分派。它讲述了它的技术定义和重要性,并用代码示例进行了解释。
Java 中的 abs() 方法
发布时间:2023/10/18 浏览次数:184 分类:Java
-
本教程通过 Java 中的不同代码示例介绍如何使用 abs() 方法。我们将学习 Java 中的 abs() 方法来查找指定数字的绝对值。我们将通过编写和练习各种代码示例来学习。
在 Java 中使用 System.exit() 方法
发布时间:2023/10/18 浏览次数:157 分类:Java
-
本文介绍 Java 中 System.exit() 方法的作用。本教程介绍了 Java 中的 System.exit() 方法的作用。System 是 Java 中的一个类,它提供了几种实用方法来处理与系统相关的任务,例如 exit() 方法用于停止当前
在 Java 中编写本机方法
发布时间:2023/10/18 浏览次数:57 分类:Java
-
本文演示了本机方法是什么以及如何在 Java 程序中编写本机方法。本文将引导你完成学习如何在 Java 程序中编写本机方法所需的各个步骤。
Java 中静态方法和非静态方法的区别
发布时间:2023/10/18 浏览次数:134 分类:Java
-
本教程对 Java 中的静态和非静态方法进行了分类,同时区分了它们的核心属性和范围。之后,我们将对这两种方法运行三个示例。
Java 中的私有方法
发布时间:2023/10/18 浏览次数:51 分类:Java
-
本教程演示了 Java 中私有方法的使用。Java 中的私有方法有一个私有访问修饰符,这意味着它们对定义类的访问受到限制,并且在继承的子类中不可访问;这就是为什么他们没有资格覆盖。
Java 中的流过滤器
发布时间:2023/10/18 浏览次数:130 分类:Java
-
本文介绍 Java 中的流 API 及其过滤方法。本教程介绍 Java 中的流 API 及其 filter() 方法。在 Java 中,流是对象的集合。
Java 中的方法重载
发布时间:2023/10/18 浏览次数:186 分类:Java
-
本教程简要介绍了 Java 中的方法重载。它还演示了我们如何以及何时可以在 Java 编程中使用方法重载。如果你正在学习 Java 编程,你可能听说过方法重载。我们将在本文中介绍 Java 中的方法重载
Java 中的方法隐藏
发布时间:2023/10/18 浏览次数:137 分类:Java
-
本文介绍了 Java 中方法隐藏的概念。在本文中,我们将研究 Java 中方法隐藏的概念。方法隐藏类似于重载,但是当对子类和父类中的静态函数使用相同的方法签名时,它就会发挥作用。