Spring Boot接收JSON数据并进行处理
假设这个JSON字符串是从HTTP请求的 body 中获得的,可以使用 Spring MVC 的注解来接收参数:
@RestController
@RequestMapping("/api")
public class MyController {
@PostMapping("/myEndpoint")
public ResponseEntity<MyResponse> myEndpoint(@RequestBody MyRequest request) {
// 处理请求并返回响应
MyResponse response = new MyResponse();
response.setCode(0);
response.setMsg('成功');
response.setUuid(UUID.randomUUID().toString());
response.setData(null);
return ResponseEntity.ok(response);
}
public static class MyRequest {
// 这里使用Jackson注解来指定JSON字段名
@JsonProperty('Header')
private Header header;
@JsonProperty('EsbHeader')
private EsbHeader esbHeader;
@JsonProperty('APPHeader')
private Object appHeader;
@JsonProperty('APPBody')
private AppBody appBody;
// getter 和 setter 省略
}
public static class Header {
@JsonProperty('Action')
private String action;
@JsonProperty('Address')
private String address;
// getter 和 setter 省略
}
public static class EsbHeader {
@JsonProperty('VrsNo')
private String vrsNo;
@JsonProperty('ScnNo')
private String scnNo;
@JsonProperty('SrcDate')
private String srcDate;
@JsonProperty('SrcTime')
private String srcTime;
@JsonProperty('SrcSysId')
private String srcSysId;
@JsonProperty('SrcCalCod')
private String srcCalCod;
@JsonProperty('GloSeqNo')
private String gloSeqNo;
@JsonProperty('ReqNo')
private String reqNo;
// getter 和 setter 省略
}
public static class AppBody {
@JsonProperty('code')
private int code;
@JsonProperty('msg')
private String msg;
@JsonProperty('uuid')
private String uuid;
@JsonProperty('data')
private Object data;
// getter 和 setter 省略
}
public static class MyResponse {
@JsonProperty('code')
private int code;
@JsonProperty('msg')
private String msg;
@JsonProperty('uuid')
private String uuid;
@JsonProperty('data')
private Object data;
// getter 和 setter 省略
}
}
在上面的代码中,@RestController 是一个 Spring MVC 注解,表示这个类是一个 RESTful API 的控制器。@RequestMapping 注解指定了这个控制器的映射路径,@PostMapping 指定了这个接口的请求方法和路径。
@RequestBody 注解用于接收 HTTP 请求的 body,并将其解析成 Java 对象。在这个例子中,我们定义了一个 MyRequest 类来表示请求参数。类中的属性使用了 Jackson 注解来指定 JSON 字段名,这样就可以将 JSON 字符串自动映射到 Java 对象中。
最后,@JsonProperty 注解用于指定 Java 属性对应的 JSON 字段名。我们还定义了一个 MyResponse 类来表示响应参数。在处理请求后,我们将响应参数封装成 ResponseEntity 对象并返回。ResponseEntity 包含了 HTTP 响应的状态码、头部信息和响应体,使用它可以更方便地控制响应。
原文地址: https://www.cveoy.top/t/topic/mLPG 著作权归作者所有。请勿转载和采集!