Java中可以使用多种方式将XML转换为JSON格式,其中常用的方式有两种:使用json-lib和使用org.json。使用json-lib需要引入相应的jar包,而使用org.json则只需要引入两个jar包即可。下面分别介绍这两种方式的实现方法:

  1. 使用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();
    }
}
  1. 使用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的步骤如下:

  1. 导入json-lib的jar包和相关依赖jar包。
  2. 创建JSONObject或JSONArray对象。
  3. 调用JSONObject或JSONArray的put方法添加属性或元素。
  4. 调用JSONObject或JSONArray的toString方法将对象转换为JSON字符串。
  5. 调用JSONObject或JSONArray的fromObject方法将JSON字符串转换为Java对象。

使用org.json的步骤如下:

  1. 导入org.json的jar包。
  2. 创建JSONObject或JSONArray对象。
  3. 调用JSONObject或JSONArray的put方法添加属性或元素。
  4. 调用JSONObject或JSONArray的toString方法将对象转换为JSON字符串。
  5. 调用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);
    }
}

在这里插入图片描述

更多推荐