将Complex Json映射到Pojo类

时间:2019-07-08 08:37:21

标签: java json spring-boot

我正在发送以下请求(使用Spring Boot)

 ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);

响应是json对象(我​​在json对象中省略了很多字段)

{
    "customer": {
        "id": 100,
        "ci": {
            "lDb": "11",
            "localId": "1"
        },
        "cusdata": {},
        "rating": {
            "id": 3140,
            "dateTime": "2019-09-21 06:45:41.10",
            "rawData": {
                "seg": "XYZ",
                "seg2": "XYZ",
                "et": "XYZ_CORP",
                "CountryCodes": [
                    "IN"
                ],
                "doBusiness": "2017-09-20"
                ],
                ...

                ....
                ...
                ...



    "status": "SUCCESS"
}

我需要将以下字段映射到Pojo类

1.localId  2.段  3.段2  4.状态

如何创建PojoClass以便自动映射这些字段

所以我的PojoClass基本上应该是什么样子?

ResponseEntity<PojoClass> response = restTemplate.exchange(url, HttpMethod.GET, request, PojoClass.class);

3 个答案:

答案 0 :(得分:2)

我建议您使用http://www.jsonschema2pojo.org/之类的网站。在这里,您可以在右侧面板上选择许多选项,并调整要从JSON模式获取的POJO。

答案 1 :(得分:0)

您的PojoClass必须遵循您正在接收的JSON的结构,并具有您感兴趣的字段(或所有字段)。

对于第一堂课:

ol.inherits

然后,为客户字段创建一个Customer类,并为其余字段创建更多类:

public class PojoClass {
    private Customer customer;
    private String status;
    ...
}

答案 2 :(得分:0)

创建自定义类PojoClass

  public class PojoClass {
        private Integer id;
        private Object ci;
        private Object cusdata;
        private Object rating;
        private Object status;
    }

ResponseEntity<PojoClass> responseEntity = restTemplate.exchange(url,HttpMethod.GET,request,new ParameterizedTypeReference<PojoClass>(){
        });