欢迎访问宙启技术站
智能推送

Java中的JSON序列化函数

发布时间:2023-06-19 10:29:41

Java 中有很多可以进行 JSON 序列化的函数,包括 Jackson、Gson 等。这里先讲一下 Jackson。

Jackson 是一个流行的 Java 序列化/反序列化库,它具有很高的性能和很好的兼容性。下面是使用 Jackson 进行 JSON 序列化的示例:

ObjectMapper objectMapper = new ObjectMapper();  // 创建 ObjectMapper 对象
String jsonString = objectMapper.writeValueAsString(obj);  // 将对象转化为 JSON 字符串

其中, 行创建了一个 ObjectMapper 对象,它是 Jackson 中的核心类之一,负责处理 JSON 的序列化和反序列化。第二行通过调用 writeValueAsString() 方法将一个对象转化为 JSON 字符串。

关于 writeValueAsString() 方法:

- 如果 obj 是一个集合对象或数组对象,则转化为 JSON 数组;

- 如果 obj 是一个普通 Java 对象,则转化为 JSON 对象。

下面给出一个转化为 JSON 对象的例子:

class Person {
    private String name;
    private int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
}
Person person = new Person("Tom", 18);
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString);

输出如下:

{"name":"Tom","age":18}

可以看到,将 Person 对象转化为了一个包含 name 和 age 两个属性的 JSON 对象。

同时,Jackson 还提供了其他方法,可用于实现高级序列化需求。例如:

- writeValue():将 JSON 写入输出流中;

- writeValueAsBytes():将 JSON 写入字节数组中;

- writeValueToFile():将 JSON 写入文件中。

Gson 是另一个流行的 JSON 序列化/反序列化库。使用 Gson 转化为 JSON 与 Jackson 的步骤类似。下面给出一个示例:

Gson gson = new Gson();  // 创建 Gson 对象
String jsonString = gson.toJson(obj);  // 将对象转化为 JSON 字符串

其中, 行创建了一个 Gson 对象,它与 ObjectMapper 作用类似。第二行通过调用 toJson() 方法将一个对象转化为 JSON 字符串。

关于 toJson() 方法:

- 如果 obj 是一个集合对象或数组对象,则转化为 JSON 数组;

- 如果 obj 是一个普通 Java 对象,则转化为 JSON 对象。

下面给出一个转化为 JSON 数组的例子:

List<Integer> list = Arrays.asList(1, 2, 3);
Gson gson = new Gson();
String jsonString = gson.toJson(list);
System.out.println(jsonString);

输出如下:

[1,2,3]

可以看到,将 List 对象转化为了一个包含三个元素的 JSON 数组。

同时,Gson 还提供了其他方法,可用于实现高级序列化需求。例如:

- toJsonTree():将 JSON 写入 JsonElement 中;

- fromJson():将 JSON 转化为对应的 Java 对象;

- fromJsonTree():将 JsonElement 转化为对应的 Java 对象。

以上就是 Java 中的 JSON 序列化函数的简单介绍,它们都可以很方便地实现将 Java 对象转化为 JSON 字符串的功能。