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