Рассмотрим следующий файл JSON:
{
"version": "1.0",
"firstData": {
"meta": "this is string",
"version": "1"
},
"SecondData": {
"meta": ["string1", "string2", "string3"],
"version": "1"
},
"ThirdData": {
"meta": true,
"version": "1"
},
"FourthData": {
"meta": [true, false, false, true],
"version": "1"
},
"FifthData": {
"meta": [{
"meta": "string",
"version": "2"
},
{
"meta": ["string1","string2"],
"version": "2"
}]
"version": "1"
}
}
Как видно, атрибут «meta» имеет другой тип данных, иногда это String, иногда ArrayOfString, иногда Boolean и т. д.
Поскольку в моем файле JSON есть несколько данных, я хочу, чтобы он соответствовал следующей структуре:
class information
{
String version;
HashMap<String,Data> details;
}
class Data
{
variable meta;
String version;
}
Как создать соответствующий POJO и десериализовать его с помощью Google GSON?
firstData
,SecondData
, ... какSomeClass
(назовите их как угодно), а затем они будут десериализованы, а затем вы можете вызватьmeta.getAsString()
дляfirstData
илиmeta.getAsJsonArray()
дляSecondData
. Дайте мне знать, если вы хотите больше примеров. 17.04.2020meta
наObject
. Затем для примитивных типов gson, таких какint
,String
,boolean
и т. д., он будет заполнен ожидаемым значением с этим типом java; для дочерних массивов он будет заполненArrayList
этих примитивных типов, а для объектов (таких как FirfthData)meta
будетMap
изString
этих примитивных типов. @кодер 17.04.2020ArrayList
метаданных, вы можете выполнить поиск десериализации универсальных типов с помощью gson. 17.04.2020