サーバーと Android デバイスの間で送信される JSONObject の解析に問題があります。
次のようになります。
{ "アイテム":[{"値":"100","経度":"11.584565599030755","緯度":"48.25420604757366","タイプ":"タイマー"},{"値":"50","経度":"11.695457342867675","緯度":"48.34626913462275","タイプ":"レア"},{"値":"1","経度":"11.6782003186674","緯度":"48.33575480986649"," type":"normal"},{"value":"1","longitude":"11.707280558203376","latitude":"48.19109880886268","type":"normal"}], "locations":[{"ユーザー名":"babine","性別":"女性","経度":"11.670796394348145","緯度":"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 の型は次のとおりです。
List<\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: ユーザー名の値がありません
ここで何が間違っているのかよくわかりません...多分あなたたちが私を助けてくれるでしょう。さらに情報が必要な場合は、お知らせください。ありがとう