0

サーバーと 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: ユーザー名の値がありません

ここで何が間違っているのかよくわかりません...多分あなたたちが私を助けてくれるでしょう。さらに情報が必要な場合は、お知らせください。ありがとう

4

1 に答える 1