0
的JSON我有下面的示例JSON:GSON反序列化內嵌構件
{
"birds":[
{
"id":"SAMPLEID",
"isTest":true,
"externalId":{
"Main":[
"123ABC"
],
"Sub":[
"456"
]
},
"dinos":[
],
"rhinos":[
{
"id":"SUPER100ID",
"isTest":true,
"externalId":{
"famousId":[
"23|45"
]
},
"dinos":[
],
"pelicans":[
{
"id":"D4CLIK",
"isTest":true,
"bird":null,
"crazyArray":[
]
},
{
"id":"DID123",
"type":"B",
"name":"TONIE",
"isTest":true,
"bird":null,
"subspecies":[
]
}
]
}
]
}
],
"metaData":{
"count":1
}
}
我想用GSON反序列化這個JSON字符串並獲得「famousId」僅成員的值。
我看過其他答案,似乎我絕對需要爲此創建類。
是否有可能反序列化這個沒有映射POJO,使用JsonParser,JsonElement,JsonArray等?我嘗試了幾個這樣的組合,但沒有成功。
我也嘗試下面的代碼,但預期它也不能正常工作:
JsonObject o = new JsonParser().parse(jsonResponseString).getAsJsonObject();
Gson gson = new Gson();
enterprises ent = new enterprises();
ent = gson.fromJson(o, enterprises.class);
@Getter
@Setter
class birds {
@JsonProperty("rhinos")
List<Rhino> rhinos = new ArrayList<Rhino>();
}
@Getter
@Setter
class Rhino {
@JsonProperty("externalId")
ExternalId externalId;
}
@Getter
@Setter
@JsonPropertyOrder({
"famousId"
})
class ExternalId {
@JsonProperty("famousId")
List<String> famousId = new ArrayList<String>();
}
不幸的是這也不管用,所以我想一個問題的兩個部分...它可以簡單地反序列化並得到我想要的famousId的字符串值,以及我目前的類結構有什麼不正確的地方?
+1不錯的答案。 – 2014-09-20 13:32:21