Java Bean 转 JSON

在Java开发中,Java Bean是一种用于封装数据的类,通常包含私有字段和公开的getter和setter方法。而JSON是一种常用的数据交换格式,通常用于前后端数据传输。在实际开发中,我们经常需要将Java Bean对象转换为JSON字符串,或将JSON字符串转换为Java Bean对象。本文将介绍如何使用常见的Java类库来实现Java Bean与JSON之间的转换。

1. 使用Jackson库进行转换

Jackson是一个流行的Java类库,用于将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象。它提供了简单而强大的API,易于使用。以下是一个使用Jackson库将Java Bean转换为JSON字符串的示例:

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) {
        // 创建一个Java Bean对象
        Person person = new Person("John", 25);

        // 创建ObjectMapper对象
        ObjectMapper mapper = new ObjectMapper();

        try {
            // 将Java Bean转换为JSON字符串
            String json = mapper.writeValueAsString(person);
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter和setter方法省略
}

上述代码中,我们创建了一个名为Person的Java Bean类,包含了name和age两个字段。在主方法中,我们首先创建了一个Person对象,然后创建了一个ObjectMapper对象,接着使用writeValueAsString方法将Person对象转换为JSON字符串。

2. 使用Gson库进行转换

Gson是另一个常用的Java类库,用于将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象。它与Jackson类似,提供了简单而灵活的API。以下是一个使用Gson库将Java Bean转换为JSON字符串的示例:

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        // 创建一个Java Bean对象
        Person person = new Person("John", 25);

        // 创建Gson对象
        Gson gson = new Gson();

        // 将Java Bean转换为JSON字符串
        String json = gson.toJson(person);
        System.out.println(json);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter和setter方法省略
}

上述代码中,我们使用了Gson库的toJson方法将Person对象转换为JSON字符串。

3. Java Bean与JSON之间的转换

除了将Java Bean转换为JSON字符串,我们也经常需要将JSON字符串转换为Java Bean对象。以下是一个使用Jackson库将JSON字符串转换为Java Bean对象的示例:

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) {
        // 定义JSON字符串
        String json = "{\"name\":\"John\",\"age\":25}";

        // 创建ObjectMapper对象
        ObjectMapper mapper = new ObjectMapper();

        try {
            // 将JSON字符串转换为Java Bean对象
            Person person = mapper.readValue(json, Person.class);
            System.out.println(person.getName());
            System.out.println(person.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;

    public Person() {}

    // getter和setter方法省略
}

上述代码中,我们使用了Jackson库的readValue方法将JSON字符串转换为Person对象。

同样地,我们也可以使用Gson库将JSON字符串转换为Java Bean对象。以下是一个使用Gson库将JSON字符串转换为Java Bean对象的示例:

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        // 定义JSON字符串
        String json = "{\"name\":\"John\",\"age\":25}";

        // 创建Gson对象
        Gson gson = new Gson();

        // 将JSON字符串转换为Java Bean对象
        Person person = gson.fromJson(json, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

class Person {
    private String name;
    private int age;

    public Person() {}

    // getter和setter方法省略
}

上述代码中,我们使用了Gson库的fromJson方法将JSON字符串转换为Person对象。