Fastjson 是阿里巴巴开发的一个高性能 JSON 处理库,支持将 JSON 数据转换为 Java 对象,或将 Java 对象转换为 JSON 数据。它提供了许多便捷的方法来处理 JSON 数据。以下是 Fastjson 的一些基本用法说明:
1. 添加 Fastjson 依赖
首先,需要在你的 Maven 项目中添加 Fastjson 依赖。如果你使用 Gradle,可以相应地在 build.gradle
文件中添加。
Maven 依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.8.3</version> <!-- 请检查最新版本 -->
</dependency>
Gradle 依赖:
implementation 'com.alibaba:fastjson:2.8.3'
2. JSON 序列化(Java 对象转 JSON):JSON.toJSONString
要将 Java 对象转换为 JSON 字符串,可以使用 JSON.toJSONString
方法:
import com.alibaba.fastjson.JSON;
public class JsonExample {
public static void main(String[] args) {
Person person = new Person("John Doe", 30);
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString); // 输出: {"name":"John Doe","age":30}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getters 和 setters
}
3. JSON 反序列化(JSON 转 Java 对象):JSON.parseObject,需要指定java类
要将 JSON 字符串转换为 Java 对象,可以使用 JSON.parseObject
方法:
import com.alibaba.fastjson.JSON;
public class JsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John Doe\",\"age\":30}";
Person person = JSON.parseObject(jsonString, Person.class);
System.out.println("Name: " + person.getName()); // 输出: John Doe
System.out.println("Age: " + person.getAge()); // 输出: 30
}
}
class Person {
private String name;
private int age;
// getters 和 setters
}
4. 解析 JSON 对象: JSON.parseObject,不指定java类
如果你只需要处理 JSON 对象(不直接转换为 Java 类),可以使用 JSON.parseObject
方法来解析为 JSONObject
:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class JsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John Doe\",\"age\":30}";
JSONObject jsonObject = JSON.parseObject(jsonString);
String name = jsonObject.getString("name");
Integer age = jsonObject.getInteger("age");
System.out.println("Name: " + name); // 输出: John Doe
System.out.println("Age: " + age); // 输出: 30
}
}
5. JSON 数组处理: JSON.parseArray
Fastjson 还支持解析 JSON 数组。可以使用 JSON.parseArray
方法将 JSON 数组字符串转换为 Java List:
import com.alibaba.fastjson.JSON;
import java.util.List;
public class JsonExample {
public static void main(String[] args) {
String jsonArrayString = "[{\"name\":\"John Doe\",\"age\":30},{\"name\":\"Jane Doe\",\"age\":25}]";
List<Person> personList = JSON.parseArray(jsonArrayString, Person.class);
for (Person person : personList) {
System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
}
}
}
class Person {
private String name;
private int age;
// getters 和 setters
}
6. JavaBean
转换为 JSONObject: (JSONObject) JSON.toJSON
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class JsonExample {
public static void main(String[] args) {
// 将 JavaBean 转换为 JSONObject
Person person = new Person("John Doe", 30);
JSONObject jsonObject = (JSONObject) JSON.toJSON(person);
System.out.println(jsonObject.toJSONString()); // 输出: {"name":"John Doe","age":30}
// 从 JSONObject 中提取值
String name = jsonObject.getString("name");
Integer age = jsonObject.getInteger("age");
System.out.println("Name: " + name + ", Age: " + age);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getters 和 setters
}
7.JSONObject 转换为 JavaBean: JSON.toJavaObject
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class JsonToJavaBeanExample {
public static void main(String[] args) {
// 创建一个 JSONObject 示例
String jsonString = "{\"name\":\"John Doe\",\"age\":30}";
JSONObject jsonObject = JSON.parseObject(jsonString);
// 将 JSONObject 转换为 JavaBean
Person person = JSON.toJavaObject(jsonObject, Person.class);
// 输出 JavaBean 属性
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
class Person {
private String name;
private int age;
// Getters 和 Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
总结
Fastjson 提供了简单而强大的 JSON 处理功能,包括序列化、反序列化、解析 JSON 对象和数组等。使用 Fastjson 可以方便地处理 JSON 数据,提高开发效率。