【发布时间】:2022-07-07 21:15:25
【问题描述】:
这里我有一个后映射类型的控制器。我将请求正文作为嵌套 JSON 的字符串。当使用字符串作为请求主体调用控制器时,我想将该字符串映射到 POJO。在那个 POJO 中,我有要从该嵌套 json 映射的字段,还有一个字段,它按原样采用实际的 String 请求正文。请帮助我如何将特定字段从嵌套的 json 字符串映射到 POJO。
请求看起来像 -
{
"Application": {
"DCode": "unsecliverelease",
"PType": "DA",
"AId": "230391106",
"ApNO": "NTFLbjOF9fXI15AF1YiC",
"crd": {
"cate": "lion",
"ProductCode": "lion"
},
"ld": {
"dm": {
"sn": "3",
"RandomNumbers": {
"RandomNumber01": "319",
"RandomNumber02": "731",
"RandomNumber03": "520",
"RandomNumber04": "102",
"RandomNumber05": "678"
},
"Request": {
"Name": "MSE",
"ACount": "1",
"BrandInd": "wert",
"CID": "123456789",
}
}
}
//控制器
@PostMapping(
value = "/decision",
produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<crdResponse > getDecision(
@RequestBody final @Valid String request) throws JsonProcessingException {
crdResponse response =
crdService.getDec(request);
return ResponseEntity.ok().body(response);
}
//POJO
public class CRequestModel {
@Column(name = "rid")
@Id
private String crdRqsId;
@Column(name = "scode")
private String scode;
@Column(name = "cid")
private Integer cid;
@Column(name = "RequestNumber")
private Integer requestNumber;
@Column(name = "RequestJson")
private String requestJSON;
@Column(name = "CreatedAt")
private Timestamp createdAt;
}
我想将整个 JSON 字符串保存到 requestJSON 字段中,并希望将 CID 值(来自请求 JSON STRING)保存到 cid 字段中。
请帮助我。此输入 JSON 字符串可以更改,因此 CID 在当前 JSON 字符串中的顺序可能会有所不同。
【问题讨论】:
标签: java json spring spring-boot