Java中的JSON序列化函数
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 字符串的功能。
