Как сопоставить JSON в POJO для отдыха Шаблон в Java? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть ответ JSON от Hubspot API, как показано ниже, у меня возникли проблемы с анализом его в Java POJO для использования с RestTemplate.Поскольку Json-ответ не в форме JSON-массивов, я не могу создавать правильные Java-классы.Может ли кто-нибудь помочь, пожалуйста?

Полученный ответ 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)"
      }
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

вы можете использовать Джексона для преобразования ответа JSON в класс POJO.Пример кода:

ObjectMapper mapper = new ObjectMapper();
POJOClass pojoclassObj = mapper.readValue(jsonResponse, POJOClass.class);
0 голосов
/ 16 октября 2018

Посмотрите эту ссылку, http://www.jsonschema2pojo.org/, в которой вы передаете JSON, и он устанавливает POJO для вас, как вам угодно.

Я протестировал ваш JSON и сгенерировал отлично.

...