[英]How to parse the following JSON array?
我很難弄清楚如何解析以下JSON(動態):
[{
"existingData": [
0,
0
],
"guestId": {
"__type": "Pointer",
"objectId": "EB1rr6Lqtp"
},
"listingAddressGeopoint": {
"__type": "GeoPoint",
"latitude": 36.002702,
"longitude": -78.90682099999998
},
"numberOfListingImages": 1,
"preferredGender": "\"Female\"",
"urlOfListingBeds": [
"https://xyz.image0.jpg"
],
"urlOfPrimaryImage": null,
"createdAt": "2015-09-09T14:54:36.139Z",
"updatedAt": "2015-09-15T14:46:41.988Z",
"user": {
"createdAt": "2015-09-09T14:54:34.841Z",
"updatedAt": "2015-09-09T14:54:34.841Z"
}
}]
問題是有時數據不是從existingData
開始previuosData
。 如何獲取Some對象列表中的urlOfListingBeds
數組?
public class Image {
public List<String> urlOfListingBeds;
}
我嘗試通過以下代碼訪問它,但它引發了錯誤
for (int i = 0; i < rjson.size(); i++) {
rjson.getAsJsonObject(i);
}
其中rjson是JsonArray
通過調用getAsJsonArray()
從json對象獲取JsonArray。 通過調用JsonArray#iterator創建一個迭代器,並遍歷每個JsonElement,並通過調用JsonElement#getAsJsonObject()
獲得JsonObject
。
擁有JsonObject
,您將找到urlOfListingBeds
。
碼:
JsonArray array= rjson.getAsJsonArray();
Iterator iterator = array.iterator();
List<String> urlOfListingBeds = new ArrayList<String>();
while(iterator.hasNext()){
JsonElement jsonElement = (JsonElement)iterator.next();
JsonObject jsonObject = jsonElement.getAsJsonObject();
JsonArray urlOfListingBed = jsonObject.getAsJsonArray("urlOfListingBeds");
if(urlOfListingBed!=null){
Iterator iter = urlOfListingBed.iterator();
while(iter.hasNext()){
JsonElement jsonElementChild = (JsonElement)iter.next();
if(jsonElementChild!=null)
urlOfListingBeds.add(jsonElement.getAsString());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.