[英]parsing json using Gson which has objects with same field name
我有一个具有以下结构的json文件:
{
"Otions": true
"Plastic": ""
"Houses": {
7: {
"name": "Akash Bhawan"
"MemBers": 3
"children": 1
}-
8: {
"name": "Ashiyana"
"memBers": 4
"children": 2
}-
9: {
"name": "Faruks Nest"
"memBers": 5
"children": 1
}-
房屋内部的对象是可变的,可以相应地增加或减少,也可以更改名称。 异域“名称”,“成员”,“子代”是仅有的字段,并且始终存在
我正在使用gson进行解析
@SerializedName("Otions")
private String Options;
@SerializedName("Plastic")
private String plastics;
@SerializedName("Houses")
private Houses houses;
我想知道是否可以通过散列表或其他方式存储名称不同的对象?
如果无法更改结构,则必须将房屋作为int
Hashmap
到object
。 例如:-
HashMap<int, Object> House;
该对象将具有名称,成员,详细信息等元素。
房屋应该是这样的地图。
私人HashMap房屋。
由于3:表示索引结构。 Gson将根据需要创建嵌套对象。
请把“房子”做成一堆数组而不是对象。
{
"Options": true,
"Plastics": "",
"house": [{
"name": "Akash Bhawan",
"MemBers": 3,
"children": 1
}, {
"name": "Ashiyana",
"memBers": 4,
"children": 2
}, {
"name": "Faruks Nest",
"memBers": 5,
"children": 1
}]
}
您应该执行以下操作(如我的评论中所述):
JSONObject jsonHouses = jsonObject.getJSONObject("Houses");
Iterator<String> keys = jsonHouses.keys(); //this will be array of "7", "8", "9"
if (keys.hasNext()) {
JSONObject singleHouseObject = jsonHouses.getJSONObject(keys.next());
//now do whatever you want to do with singleHouseObject.
//this is the object which has "name", "MemBers", "children"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.