【问题标题】:Nested JSON request - PostMapping in Springboot嵌套 JSON 请求 - Springboot 中的 PostMapping
【发布时间】:2020-08-11 13:55:09
【问题描述】:

我需要在 Springboot 中创建一个 post 请求并调用一个 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 

}

【问题讨论】:

  • “涉及多个细分市场”究竟是什么意思?
  • @Praveenks 您可以使用 jsonschema2pojo.org 链接根据来自同一链接的 Source type=Json 配置的 JSON 数据生成 POJO...
  • @sagar.tarle 谢谢!!这非常有用。

标签: java spring-boot jackson


【解决方案1】:

您可以使用一个主 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 
        }
    }

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    相关资源
    最近更新 更多