嵌套JSON请求-Springboot中的PostMapping

问题描述

我需要在Springboot中创建一个发布请求,并调用一个API来更新记录。映射JSON布局是一个嵌套布局,如下所述:

{
  "Config": {
    "Identity": "","Region": ""
  },"OPTION_IP_COLL": {
    "OPTION_NAME": "","OPTION_VALUE": ""
  },"REC_XPFH": {
    "UPDATE_CD": "","ENTITY_TYPE": "","TN_ID": "","PR_ID": ""
  },"REC_GRP": {
    "REC_PRPR": {
      "PR_UPDATE_CD": "","PR_ENTITY": "","PR_CL_EFT_IND": "","PR_EDI_DEST_ID": "","PR_RA_DEST_IND": ""
    },"REC_MCBR": {
      "BD_ID": "","BR_ACCT_NO": "","BR_ACCT_NAME": "","BR_ACCT_NO_QUA": ""
    }
  }
}

由于这是一个嵌套的嵌套,因此对于如何为该请求定义POJO(应该为单个或多个)并在@PostMapping中调用它,我有些困惑。我正在考虑创建一个Main POJO,然后为其他段创建不同的类,然后在RestController类中调用Main。我不确定这是否是正确的方法,还是可以尝试其他方法。另外,由于涉及嵌套段,我需要一些帮助来定义REC_GRP类。

MainPOJO.class

public class ProviderMappingPOJO {
    
    private Config config;
    private OPTIONAL_IP_CALL option_ip_call;
    private REC_XPFH rec_xpfh ;
    private REC_GRP rec_grp;

//getter and setter method .....

Config.class

private String Identity ;
private String Region;
// getters and setters method...

OPTION_IP_COLL.class

private String UPDATE_CD;
private String ENTITY_TYPE;
private String TN_ID;
private String PR_ID;

// getter and setter methods ...

REC_XPFH.class

 // Not sure how to define structure for this as there are nested segments

RestController.class

 public class RestController {
    
 @PostMapping(url)
 public <> getProviderDetails(@RequestBody MainPOJO main){
     
    // code 

}

解决方法

您可以使用一个主pojo,并且可以在该主pojo内定义上面提到的子pojo。

    public class MainPOJO {    
        private Config config;
        private OPTIONAL_IP_CALL option_ip_call;
        private REC_XPFH rec_xpfh ;
        private REC_GRP rec_grp;

        // setters and getters
    }

您可以参考以下链接,这将帮助您清楚地了解转换过程。

https://dzone.com/articles/converting-json-to-pojos-using-java

http://www.jsonschema2pojo.org/

https://www.freecodeformat.com/json2pojo.php

完成转换后,可以使用Spring Rest控制器使用json。

    public class RestController {

        @PostMapping(path="url",consumes = "application/json")
        public <> getProviderDetails(@RequestBody MainPOJO main){
 
           // code 
        }
    }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...