Мне нужно проанализировать следующий JSON и добавить значения из него в три разных объекта Java. Я думал сформировать 3 других Jsons, чтобы сделать это. У меня есть некоторые проблемы с синтаксическим анализом, поскольку JSON немного сложнее. Ниже приведен JSON:
{
"totalCount": 1,
"results": [
{
"teleCommunications": [
{
"areaCode": "100",
"telephoneNumber": "300-2444",
"internationalAreaCode": "",
"communicationType": 1
},
{
"areaCode": "100",
"telephoneNumber": "200-2555",
"internationalAreaCode": "",
"communicationType": 5
}
],
"delegate": {
"id": 0,
"range": 0,
},
"name": "Andrew",
"composedKey": {
"id": 615,
"range": 50,
},
"isBranchAddress": false,
"emailAddresses": [
{
"emailAddressType": 9,
"emailAddress": "andrew.brown@gmail.com"
}
],
"name": "Brown",
"zipCodeCity": "65760 Leipzig",
"salutation": "Mr.",
"openingDate": "2019-09-20",
"streetHouseNumber": "Offenbach. 37",
"modificationTimestamp": "2018-01-27"
}
]
}
Мне нужно отдельно получить значения из name, zipCodeCity, salutation, opensDate, streetHouseNumber в JSON (или любым другим способом), emailAddresses в другом JSON и других данных. в другом.
Я пробовал с этим фрагментом кода:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
HashMap<String, Object> result = new ObjectMapper().readValue(response, HashMap.class);
Object object = result.get("results");
List<HashMap<String, String>> jsonValues = (List<HashMap<String, String>>)object;
for(String key : jsonValues.get(0).keySet()){
System.out.println("name value " + jsonValues.get(0).get("name"));
System.out.println("zip code City " + jsonValues.get(0).get("zipCodeCity"));
}
Проблема в том, что я бы не пошел таким жестко закодированным способом ... он не очень подходит. Кто-нибудь знает лучший подход для хранения нужных мне значений и более оптимального разбора Json?
Спасибо