杰瑞科技汇

Java对象如何转成JSON字符串?

Java 对象转 JSON 字符串

在 Java 中,将对象转换为 JSON 字符串有多种方法,以下是几种常用的实现方式:

Java对象如何转成JSON字符串?-图1
(图片来源网络,侵删)

使用 Jackson 库

Jackson 是最受欢迎的 Java JSON 处理库之一。

添加依赖 (Maven)

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

使用示例

import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample {
    public static void main(String[] args) throws Exception {
        // 创建对象
        User user = new User("张三", 25, "zhangsan@example.com");
        // 创建 ObjectMapper 实例
        ObjectMapper objectMapper = new ObjectMapper();
        // 将对象转换为 JSON 字符串
        String jsonString = objectMapper.writeValueAsString(user);
        System.out.println(jsonString);
        // 输出: {"name":"张三","age":25,"email":"zhangsan@example.com"}
    }
}
class User {
    private String name;
    private int age;
    private String email;
    // 构造方法、getter 和 setter
    public User() {}
    public User(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }
    // getter 和 setter 方法
    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; }
    public String getEmail() { return email; }
    public void setEmail(String email) { this.email = email; }
}

使用 Gson 库

Google 的 Gson 是另一个流行的 JSON 处理库。

添加依赖 (Maven)

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

使用示例

import com.google.gson.Gson;
public class GsonExample {
    public static void main(String[] args) {
        // 创建对象
        User user = new User("李四", 30, "lisi@example.com");
        // 创建 Gson 实例
        Gson gson = new Gson();
        // 将对象转换为 JSON 字符串
        String jsonString = gson.toJson(user);
        System.out.println(jsonString);
        // 输出: {"name":"李四","age":30,"email":"lisi@example.com"}
    }
}

使用 org.json 库

这是一个轻量级的 JSON 处理库。

添加依赖 (Maven)

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20250320</version>
</dependency>

使用示例

import org.json.JSONObject;
public class OrgJsonExample {
    public static void main(String[] args) {
        // 创建对象
        User user = new User("王五", 28, "wangwu@example.com");
        // 将对象转换为 JSON 对象
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", user.getName());
        jsonObject.put("age", user.getAge());
        jsonObject.put("email", user.getEmail());
        // 将 JSON 对象转换为字符串
        String jsonString = jsonObject.toString();
        System.out.println(jsonString);
        // 输出: {"name":"王五","age":28,"email":"wangwu@example.com"}
    }
}

使用 Java 内置库 (Java 9+)

从 Java 9 开始,Java 标准库中包含了 JSON 处理功能。

Java对象如何转成JSON字符串?-图2
(图片来源网络,侵删)

使用示例

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
public class JavaJsonExample {
    public static void main(String[] args) {
        // 创建对象
        User user = new User("赵六", 35, "zhaoliu@example.com");
        // 创建 JSON 对象构建器
        JsonObjectBuilder builder = Json.createObjectBuilder();
        builder.add("name", user.getName());
        builder.add("age", user.getAge());
        builder.add("email", user.getEmail());
        // 构建 JSON 对象并转换为字符串
        JsonObject jsonObject = builder.build();
        String jsonString = jsonObject.toString();
        System.out.println(jsonString);
        // 输出: {"name":"赵六","age":35,"email":"zhaoliu@example.com"}
    }
}

注意事项

  1. 字段可见性:大多数 JSON 库要求对象有公共的 getter 方法或公共字段
  2. 循环引用:对象中存在循环引用时会导致无限递归,需要特殊处理
  3. 日期处理:日期类型需要自定义序列化格式
  4. null 值处理:可以根据需要配置是否包含 null 值
  5. 性能考虑:Jackson 通常被认为是最快的 JSON 库

方法中,Jackson 和 Gson 是最常用的,功能也更全面,推荐在项目中使用。

分享:
扫描分享到社交APP
上一篇
下一篇