java 和 json 对象间转换


在Java中,处理JSON对象通常使用像Jackson或Gson这样的库。这里,我将提供使用Jackson和Gson库进行Java对象和JSON字符串之间转换的基本示例。

### 使用Jackson库

首先,确保你的项目中包含了Jackson的依赖。如果你使用Maven,可以添加如下依赖到你的`pom.xml`:


<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.14.1</version> <!-- 使用最新版本或适合你的项目的版本 -->
</dependency>

然后,你可以使用`ObjectMapper`类来转换Java对象和JSON字符串:


import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) {
        try {
            // Java对象到JSON字符串
            ObjectMapper mapper = new ObjectMapper();
            String jsonString = mapper.writeValueAsString(new Person("John Doe", 30));
            System.out.println(jsonString);

            // JSON字符串到Java对象
            Person person = mapper.readValue(jsonString, Person.class);
            System.out.println(person.getName() + ", " + person.getAge());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static class Person {
        private String name;
        private int age;

        // 构造器、getter和setter省略
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        // getter和setter...
    }
}

### 使用Gson库

类似地,如果你选择使用Gson,首先添加Gson的Maven依赖:


<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version> <!-- 使用最新版本或适合你的项目的版本 -->
</dependency>

然后,使用`Gson`类进行转换:


import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {
        Gson gson = new Gson();

        // Java对象到JSON字符串
        String jsonString = gson.toJson(new Person("Jane Doe", 28));
        System.out.println(jsonString);

        // JSON字符串到Java对象
        Person person = gson.fromJson(jsonString, Person.class);
        System.out.println(person.getName() + ", " + person.getAge());
    }

    // Person类与上面的相同
}

在这两个示例中,`Person`类是一个简单的Java类,包含两个字段:`name`和`age`。这些示例展示了如何将`Person`对象转换为JSON字符串,以及如何将JSON字符串转换回`Person`对象。注意,为了简洁起见,我省略了`Person`类的getter和setter方法,但在实际应用中,你应该包含它们。