JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 Web 应用程序之间的数据传输。JSON 的语法简洁、易于理解,支持多种编程语言,因此广受欢迎。下面我将分别介绍三种常见的 JSON 库:Jackson、Gson 和 Fastjson,并给出使用示例。
Jackson
Jackson 是一个高效的 JSON 库,可以支持 JSON 和 Java 对象之间的相互转换。Jackson 有两个核心组件:ObjectMapper 和 JsonNode。其中 ObjectMapper 用于将 JSON 字符串转换成 Java 对象或将 Java 对象转换成 JSON 字符串;JsonNode 用于操作 JSON 数据。
下面以一个简单的示例来介绍 Jackson 的使用:
首先,创建一个 User 类,该类包含 name、age 两个属性:
public class User {
private String name;
private int age;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
// getter 和 setter 方法省略
}
然后,将 User 对象转换成 JSON 字符串:
ObjectMapper objectMapper = new ObjectMapper();
User user = new User("Tom", 20);
String jsonStr = objectMapper.writeValueAsString(user);
System.out.println(jsonStr);
输出结果:
{"name":"Tom","age":20}
接着,将 JSON 字符串转换成 User 对象:
String jsonStr = "{\"name\":\"Tom\",\"age\":20}";
User user = objectMapper.readValue(jsonStr, User.class);
System.out.println(user.getName() + ", " + user.getAge());
输出结果:
Tom, 20
Gson
Gson 是 Google 开发的一个用于在 Java 对象和 JSON 数据之间进行序列化和反序列化的库。Gson 的 API 简单易用,且具有很高的性能。
下面以一个示例来介绍 Gson 的使用:
首先,创建一个 Person 类,该类包含 name、age 两个属性:
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter 和 setter 方法省略
}
然后,将 Person 对象转换成 JSON 字符串:
Gson gson = new Gson();
Person person = new Person("Tom", 20);
String jsonStr = gson.toJson(person);
System.out.println(jsonStr);
输出结果:
{"name":"Tom","age":20}
接着,将 JSON 字符串转换成 Person 对象:
String jsonStr = "{\"name\":\"Tom\",\"age\":20}";
Person person = gson.fromJson(jsonStr, Person.class);
System.out.println(person.getName() + ", " + person.getAge());
输出结果:
Tom, 20
Fastjson
Fastjson 是阿里巴巴开发的一个高性能的 JSON 库,可以支持 JSON 和 Java 对象之间的相互转换。Fastjson 支持多种特性,例如自动类型识别、循环引用检测、日期格式化等,还支持 Java Bean、List、Map、Array 等复杂数据类型的转换。
下面以一个示例来介绍 Fastjson 的使用:
首先,创建一个 Book 类,该类包含 title、author、price 三个属性:
public class Book {
private String title;
private String author;
private double price;
public Book() {
}
public Book(String title, String author, double price) {
this.title = title;
this.author = author;
this.price = price;
}
// getter 和 setter 方法省略
}
然后,将 Book 对象转换成 JSON 字符串:
Book book = new Book("Java 编程思想", "Bruce Eckel", 99.0);
String jsonStr = JSON.toJSONString(book);
System.out.println(jsonStr);
输出结果:
{"author":"Bruce Eckel","price":99.0,"title":"Java 编程思想"}
接着,将 JSON 字符串转换成 Book 对象:
String jsonStr = "{\"author\":\"Bruce Eckel\",\"price\":99.0,\"title\":\"Java 编程思想\"}";
Book book = JSON.parseObject(jsonStr, Book.class);
System.out.println(book.getTitle() + ", " + book.getAuthor() + ", " + book.getPrice());
输出结果:
Java 编程思想, Bruce Eckel, 99.0
以上就是 Jackson、Gson 和 Fastjson 三种常见的 JSON 库的使用示例。这些库都可以支持 JSON 和 Java 对象之间的相互转换,具体使用哪种库可以根据实际需要进行选择。