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

Spring Boot控制器不新建类如何动态返回指定结构的JSON响应

解决方案

你可以通过以下几种不需要额外创建响应类的方式实现:

方式1:使用Map(最通用,无额外依赖)

Java 9及以上版本可以直接用Map.of快速创建不可变Map:

@GetMapping("/test")
public ResponseEntity<?> getLanguageList() {
    return ResponseEntity.ok(Map.of(
        "status", "OK",
        "info", "Hello"
    ));
}

Java 8版本写法:

@GetMapping("/test")
public ResponseEntity<?> getLanguageList() {
    Map<String, Object> res = new HashMap<>();
    res.put("status", "OK");
    res.put("info", "Hello");
    return ResponseEntity.ok(res);
}

Spring 自带的 Jackson 序列化工具会自动将 Map 转为你需要的 JSON 格式。

方式2:使用Jackson的ObjectNode(动态字段场景更灵活)

直接用Spring内置的Jackson对象节点构造,适合需要动态增减字段的场景:

// 先注入ObjectMapper,或者直接new一个也可以
@Autowired
private ObjectMapper objectMapper;

@GetMapping("/test")
public ResponseEntity<?> getLanguageList() {
    ObjectNode res = objectMapper.createObjectNode();
    res.put("status", "OK");
    res.put("info", "Hello");
    return ResponseEntity.ok(res);
}

方式3:使用第三方JSON库的JSONObject(需引入对应依赖)

比如用FastJSON的话,写法如下:

@GetMapping("/test")
public ResponseEntity<?> getLanguageList() {
    JSONObject res = new JSONObject();
    res.put("status", "OK");
    res.put("info", "Hello");
    return ResponseEntity.ok(res);
}

注意:该方式需要提前引入FastJSON等对应JSON库的依赖,同时要配置好对应的消息转换器确保序列化正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:57:02