简体   繁体   English

如何在Java中将JSON映射到POJO中的rest模板?

[英]How to map a JSON into POJO for rest Template in java?

I have a JSON response coming from Hubspot API as following, I am having trouble to parse it into Java POJO for using with RestTemplate. 我有一个来自Hubspot API的JSON响应,如下所示,我很难将其解析为Java POJO以便与RestTemplate一起使用。 Since the Json reponse is not in form of json arrays,I am not able to create proper java classes. 由于Json响应不是json数组的形式,因此我无法创建适当的java类。 Can someone please help? 有人可以帮忙吗?

The JSON response received is as following: 收到的JSON响应如下:

{
  "1": {
    "vid": 1,
    "canonical-vid": 1,
    "portal-id": 5017510,
    "is-contact": true,
    "profile-token": "AO_T-mOzMc0AQx3P50QBw3qJ09A30BWfeQu89iOhW5ADWb6-uIT7m37lYwSTk7ObLEYwwnpxGNM1x9rkivaT-abeu6MegOWO31EUpZ3b56hfFti61ewcGQvC-XocjM2fekCOtK5oyM1C",
    "profile-url": "https://app.hubspot.com/contacts/5017510/lists/public/contact/_AO_T-mOzMc0AQx3P50QBw3qJ09A30BWfeQu89iOhW5ADWb6-uIT7m37lYwSTk7ObLEYwwnpxGNM1x9rkivaT-abeu6MegOWO31EUpZ3b56hfFti61ewcGQvC-XocjM2fekCOtK5oyM1C/",
    "properties": {
      "firstname": {
        "value": "Cool"
      },
      "city": {
        "value": "Cambridge"
      },
      "createdate": {
        "value": "1539332326199"
      },
      "company": {
        "value": "HubSpot"
      },
      "state": {
        "value": "MA"
      },
      "email": {
        "value": "coolrobot@hubspot.com"
      },
      "website": {
        "value": "http://www.HubSpot.com"
      },
      "jobtitle": {
        "value": "Robot"
      },
      "lastmodifieddate": {
        "value": "1539332330206"
      },
      "lastname": {
        "value": "Robot (Sample Contact)"
      }
    }
  },
  "51": {
    "vid": 51,
    "canonical-vid": 51,
    "portal-id": 5017510,
    "is-contact": true,
    "profile-token": "AO_T-mNsLUnhG0QdyfV6D_JZhoqldgC_jYOZswkSrsgRW1uvUZpajXSjd-83OtQEdptpio0VAgtGD3_qIOe_4vnijJ8_q6traOskjw5A48d1RhghdFuqiDpgz7pRcuzTrMjsvWF5Oat3",
    "profile-url": "https://app.hubspot.com/contacts/5017510/lists/public/contact/_AO_T-mNsLUnhG0QdyfV6D_JZhoqldgC_jYOZswkSrsgRW1uvUZpajXSjd-83OtQEdptpio0VAgtGD3_qIOe_4vnijJ8_q6traOskjw5A48d1RhghdFuqiDpgz7pRcuzTrMjsvWF5Oat3/",
    "properties": {
      "firstname": {
        "value": "Brian"
      },
      "city": {
        "value": "Cambridge"
      },
      "createdate": {
        "value": "1539332326434"
      },
      "company": {
        "value": "HubSpot"
      },
      "state": {
        "value": "MA"
      },
      "email": {
        "value": "bh@hubspot.com"
      },
      "website": {
        "value": "http://www.HubSpot.com"
      },
      "jobtitle": {
        "value": "CEO"
      },
      "lastmodifieddate": {
        "value": "1539332334158"
      },
      "lastname": {
        "value": "Halligan (Sample Contact)"
      }
    }
  }
}

See this link, http://www.jsonschema2pojo.org/ in it you pass the JSON and it mounts the POJO for you, however you want. 请参阅此链接http://www.jsonschema2pojo.org/ ,其中传递JSON,并根据需要安装POJO。

I tested with your JSON and generated perfectly. 我对您的JSON进行了测试,并生成了完美的代码。

you can use Jackson to convert JSON response into POJO class. 您可以使用Jackson将JSON响应转换为POJO类。 Sample code: 样例代码:

ObjectMapper mapper = new ObjectMapper();
POJOClass pojoclassObj = mapper.readValue(jsonResponse, POJOClass.class);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM