我在解析服務器和Android設備之間發送的JSONObject時遇到問題。JSONObject爲什麼getString在這裏沒有任何價值?
它看起來像這樣:
{ 「項」:[{ 「值」: 「100」, 「經度」: 「11.584565599030755」, 「緯度」: 「48.25420604757366」, 「類型」 : 「計時器」},{ 「值」: 「50」, 「經度」: 「11.695457342867675」, 「緯度」: 「48.34626913462275」, 「類型」: 「罕見」},{ 「值」: 「1」,」經度 「:」 11.6782003186674" , 「緯度」: 「48.33575480986649」, 「類型」: 「正常」},{ 「值」: 「1」, 「經度」: 「11.707280558203376」, 「緯度」: 「48.19109880886268」,」類型「:」normal「}], 」locations「:[{」username「:」babine「,」gender「:」female「,」longitude「:」11.670796394348145「,」latitude「:」48.26356506347656「}] }
這是我的設備實際上從服務器接收到的內容。 現在拆分這件事是這樣的:
JSONArray locations= json.getJSONArray("locations");
List<JSONObject> list = new ArrayList<JSONObject>();
for (int i= 0; i < locations.length(); i++) {
list.add(locations.getJSONObject(i));
}
LocationEvent.players = list;
JSONArray items = json.getJSONArray("items");
list.clear();
for (int i= 0; i < items.length(); i++){
list.add(items.getJSONObject(i));
}
Item.items = list;
凡Item.items和LocationEvent.players從類型:
列表< \的JSONObject>
後,我創造了疊加每個列表項目如下:
players.clear();
for(JSONObject player: LocationEvent.getAllPlayers()){
UserOverlay user = new UserOverlay(game, player.getString("username"), player.getString("gender"), Double.valueOf(player.getString("latitude")), Double.valueOf(player.getString("longitude")));
players.add(user);
}
items.clear();
for(JSONObject item : Item.getAllItems()){
ItemOverlay itemOv = new ItemOverlay(game, type, Double.valueOf(item.getString("longitude")), Double.valueOf(item.getString("latitude")));
items.add(itemOv);
}
這裏是其中JSONException發生:
org.json.JSONException:用戶名
沒有價值,我不太清楚我在做什麼錯在這裏...也許你們能幫助我出去了。如果您需要更多信息,請告訴我。由於
哦..我沒有意識到這並不複製整個列表。但現在它總是有意義的。非常感謝。我會盡快回答你的回答是否正確。 – puelo