[英]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.