You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中如何在模型类中创建带值类型定义的JSONObject?

Spring Boot 实现带类型的JSON结构方案

以下两种方案均可对应你给出的JavaScript结构,可根据场景选择:

方案1:强类型实体类(Spring Boot官方推荐写法)

这种写法类型安全,和Spring Boot自带的序列化组件完美适配,是业务开发中的首选方案:

import com.fasterxml.jackson.annotation.JsonProperty;

public class CustomModel {
    // 对应JS中的 _id: Number,数值范围小可用Integer,范围大用Long
    @JsonProperty("_id") // 指定序列化后输出键名为_id,而非Java字段名id
    private Long id;
    // 对应JS中的 status: String
    private String status;
    // 对应JS中的 name: String
    private String name;

    // 无参构造,序列化/反序列化必需
    public CustomModel() {}

    // 全参构造,方便快速创建实例
    public CustomModel(Long id, String status, String name) {
        this.id = id;
        this.status = status;
        this.name = name;
    }

    // 以下Getter、Setter可引入Lombok依赖后用@Data注解省略手写
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

使用示例:

// 直接创建带值的实例
CustomModel model = new CustomModel(1001L, "enabled", "测试用户");

该实例被Spring Boot接口返回时会自动序列化为你需要的JSON结构,字段类型完全匹配。

方案2:动态JSONObject实现

如果你不需要提前定义实体类,需要灵活构造JSON结构,可使用JSON工具类实现:

基于Spring自带Jackson(无需额外依赖)

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

// 构造实例
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode jsonObj = objectMapper.createObjectNode();
// 按类型赋值
jsonObj.put("_id", 1001); // Number类型
jsonObj.put("status", "enabled"); // String类型
jsonObj.put("name", "测试用户"); // String类型

基于FastJSON2

import com.alibaba.fastjson2.JSONObject;

// 构造实例
JSONObject jsonObj = new JSONObject();
// 按类型赋值
jsonObj.put("_id", 1001); // 自动识别为Number类型
jsonObj.put("status", "enabled"); // 自动识别为String类型
jsonObj.put("name", "测试用户"); // 自动识别为String类型

内容的提问来源于stack exchange,提问作者Oya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:06:01