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);
}
}