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

Postman请求体字段传JSON值并在SpringBoot控制器中解析的实现方法

Postman传递JSON数据到SpringBoot控制器实现方案

问题1:将JSON作为单个字段值传递、控制器接收为字符串

完全可以实现,操作步骤如下:

  • Postman配置:
    1. 选择POST请求,Headers中添加Content-Type: application/json
    2. 请求体选择raw->JSON格式,将需要传递的JSON内容转义双引号后作为单个字段的字符串值,示例请求体:
{
  "jsonContent": "{\"username\":\"zhangsan\",\"age\":25,\"dept\":\"研发部\"}"
}
  • 控制器接收逻辑:
    可以直接定义包含对应String类型字段的DTO类接收,也可以用Map接收参数,示例代码:
// 方式1:DTO接收
@Data
public class JsonStrDTO {
    private String jsonContent;
}

@PostMapping("/receiveStr")
public void receiveStr(@RequestBody JsonStrDTO dto) {
    String jsonStr = dto.getJsonContent();
    // 后续可通过Jackson ObjectMapper或Fastjson将字符串解析为JSON对象操作
}

// 方式2:Map直接接收
@PostMapping("/receiveStr")
public void receiveStr(@RequestBody Map<String, Object> reqMap) {
    String jsonStr = (String) reqMap.get("jsonContent");
}

问题2:实体类JSONObject类型字段接收JSON数据

分两种常用的JSON库场景实现:

场景1:使用SpringBoot默认Jackson库

无需引入额外依赖,直接将字段类型定义为JsonNode即可,SpringBoot自带的消息转换器会自动完成反序列化:

  1. 实体类定义:
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;

@Data
public class InputDTO {
    private JsonNode input;
}
  1. Postman请求体写法(无需转义,直接嵌套JSON即可):
{
  "input": {
    "username": "zhangsan",
    "age": 25,
    "roles": ["admin", "user"]
  }
}
  1. 控制器代码:
@PostMapping("/receiveJson")
public void receiveJson(@RequestBody InputDTO dto) {
    JsonNode input = dto.getInput();
    // 直接调用方法取值:input.get("username").asText()、input.get("age").asInt()
}

场景2:使用Fastjson库

  1. 首先引入Fastjson依赖:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.32</version>
</dependency>
  1. 实体类定义:
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;

@Data
public class InputDTO {
    private JSONObject input;
}
  1. 配置Fastjson消息转换器(可选,部分版本默认即可识别,若反序列化失败可添加配置):
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        converters.add(0, converter);
    }
}
  1. Postman请求体写法和控制器逻辑和Jackson场景完全一致,直接嵌套JSON传递即可,控制器中可直接调用JSONObject的API操作参数。

提示:两种场景都不需要对input字段对应的JSON内容做转义,框架会自动完成反序列化映射。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:18:03