Это чрезвычайно распространенная проблема, известная как маршалинг данных. В java Джексон - общее лучшее решение. Прочтите этот учебник: http://wiki.fasterxml.com/JacksonInFiveMinutes
Как сопоставить этот JSON с объектом?
{"d":"[{"Key":"3","ExternalKey":"143234A","Name":"cup of juice","Litres":"2 litres","Date":"2016-10-06T08:32:27","Capacity":5.4900,"CapacityType":"%"}, {"Key":"3","ExternalKey":"143234A","Name":"cup of milk","Litres":"2.4 litres","Date":"2016-10-06T08:32:27","Capacity":1667.6100,"CapacityType":"M"}]"}
Я пробовал использовать HashMap, но он просто помещает «d» в качестве строки, а остальное как объект String с одним элементом
java,android,json,serialization,android-gson,
В строке Json есть дополнительные символы.
Это последний json:
{
"d": [
{
"Key": "3",
"ExternalKey": "143234A",
"Name": "cup of juice",
"Litres": "2 litres",
"Date": "2016-10-06T08:32:27",
"Capacity": 5.49,
"CapacityType": "%"
},
{
"Key": "3",
"ExternalKey": "143234A",
"Name": "cup of milk",
"Litres": "2.4 litres",
"Date": "2016-10-06T08:32:27",
"Capacity": 1667.61,
"CapacityType": "M"
}
]
}
Теперь вы можете скопировать json и вставить его здесь, чтобы получить pojo.
Существует n номеров библиотек, доступных для разбора JSON и преобразования в классы java. Некоторые из примеров, GSON Джексон Площадь Логана Моши и т. Д. Вам нужно создать класс java, который сопоставляется с вашим ответом JSON, и вам нужно изменить ваше pojo в соответствии с библиотекой разбора. Например, Используя Logan Square, вы должны аннотировать класс POJO к @JsonObject, и все свойства должны быть аннотированы с помощью @JsonField. Теперь вы можете проанализировать свой метод json ... LoganSquare.parse (jsonString, pojoClassName); ... Надеюсь, это поможет вам. ура