Java中可以使用多种方式将XML转换为JSON格式,其中常用的方式有两种:使用json-lib和使用org.json。使用json-lib需要引入相应的jar包,而使用org.json则只需要引入两个jar包即可。下面分别介绍这两种方式的实现方法:
- 使用json-lib实现XML转JSON:
引入依赖:
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
复制
实现代码:
public static void ConvertXMLtoJSON() { InputStream is = Test.class.getResourceAsStream("student.xml"); String xml; try { xml = IOUtils.toString(is); System.out.println(xml); XMLSerializer xmlSerializer = new XMLSerializer(); JSON json = xmlSerializer.read(xml); System.out.println(json); System.out.println(json.toString(0)); } catch (IOException e) { e.printStackTrace(); } }
复制
- 使用org.json实现XML转JSON:
引入依赖:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180813</version> </dependency>
复制
实现代码:
public static String xml2jsonString() throws JSONException, IOException { InputStream in = JsonUtils.class.getResourceAsStream("student.xml"); String xml = IOUtils.toString(in); JSONObject xmlJSONObj = XML.toJSONObject(xml); return xmlJSONObj.toString(); }
复制
使用json-lib和org.json都可以完成Java对象和JSON的相互转换,但是它们的使用方法和特点略有不同。
使用json-lib的步骤如下:
- 导入json-lib的jar包和相关依赖jar包。
- 创建JSONObject或JSONArray对象。
- 调用JSONObject或JSONArray的put方法添加属性或元素。
- 调用JSONObject或JSONArray的toString方法将对象转换为JSON字符串。
- 调用JSONObject或JSONArray的fromObject方法将JSON字符串转换为Java对象。
使用org.json的步骤如下:
- 导入org.json的jar包。
- 创建JSONObject或JSONArray对象。
- 调用JSONObject或JSONArray的put方法添加属性或元素。
- 调用JSONObject或JSONArray的toString方法将对象转换为JSON字符串。
- 调用JSONObject或JSONArray的静态方法fromObject将JSON字符串转换为Java对象。
需要注意的是,json-lib支持更多的数据类型,如Date、Calendar等,而org.json只支持基本数据类型和String类型。此外,json-lib的API更加简单易用,而org.json的API则更加灵活。
下面是使用json-lib的示例代码:
import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonLibDemo { public static void main(String[] args) { // 创建JSONObject对象 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "张三"); jsonObject.put("age", 18); jsonObject.put("gender", "男"); // 创建JSONArray对象 JSONArray jsonArray = new JSONArray(); jsonArray.add("Java"); jsonArray.add("Python"); jsonArray.add("C++"); // 将JSONObject和JSONArray转换为JSON字符串 String jsonStr1 = jsonObject.toString(); String jsonStr2 = jsonArray.toString(); // 将JSON字符串转换为JSONObject和JSONArray JSONObject jsonObject2 = JSONObject.fromObject(jsonStr1); JSONArray jsonArray2 = JSONArray.fromObject(jsonStr2); } }
复制
下面是使用org.json的示例代码:
import org.json.JSONArray; import org.json.JSONObject; public class OrgJsonDemo { public static void main(String[] args) { // 创建JSONObject对象 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "张三"); jsonObject.put("age", 18); jsonObject.put("gender", "男"); // 创建JSONArray对象 JSONArray jsonArray = new JSONArray(); jsonArray.put("Java"); jsonArray.put("Python"); jsonArray.put("C++"); // 将JSONObject和JSONArray转换为JSON字符串 String jsonStr1 = jsonObject.toString(); String jsonStr2 = jsonArray.toString(); // 将JSON字符串转换为JSONObject和JSONArray JSONObject jsonObject2 = new JSONObject(jsonStr1); JSONArray jsonArray2 = new JSONArray(jsonStr2); } }
复制