Fastjson JSON处理库

发布于:2024-08-15 ⋅ 阅读:(68) ⋅ 点赞:(0)

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 数据,提高开发效率。