私はアンドロイドでアプリケーションを開発しています。 私はHttpClientを持つPHP(Webサーバ)での接続の一部を完了し、それを文字列に保存しています以下のJSONJSONとJavaマップの明確化が必要
[{"id":"1","number":"2"},{"id":"3","number":"4"},{"id":"5","number":"6"},{"id":"7","number":"8"}]
を提供していたPHPでAPIを構築する必要があります。 今、私は(私はハッシュマップを使用!!!ドン;これは任意の提案は大歓迎です!!!!最善である場合tは知っている)ローカルコレクションにそれを保存したい、私は次のように宣言したいアレイで定義された私のjsonobject .Because:HashMap<Integer, LinkedHashMap<String, String>> hashmap;
一般的な考え方は、integer
のインデックスに保存し、LinkedHashMap<String, String>
のすべてのjsonオブジェクトに保存することでした。
hashmap[0] = {"id":"1","number":"2"}
hashmap[1] = {"id":"3","number":"4"}
hashmap[2] = {"id":"5","number":"6"}
失敗コード: - >"id":"7","number":"8"
しかし、私は宣言をすれば
JSONObject tempjson;
hashmap = new HashMap<Integer, LinkedHashMap<String,String>>();
LinkedHashMap<String, String> linkedmap = new LinkedHashMap<String, String>();
for(int i=0;i<jsonarray.length();i++)
{
JSONObject tempjsonobject = jsonarray.getJSONObject(i);
linkedmap.put("id", tempjsonobject.getString("id"));
linkedmap.put("number", tempjsonobject.getString("id"));
hashmap.put(i, linkedmap);
}
のLinkedHashMapは、常に最後のエントリを持っている私が何かになりたいハッシュマップのインスタンスLinkedHashMap<String, String> linkedmap = new LinkedHashMap<String, String>();
内はfor loop
です。
なぜこのようなことが起こるのか説明できますか?コメントへ
は
http://jackson.codehaus.orgのような実際のJSON解析ライブラリを使用してみませんか? – fge
JSON配列に配列型を使用してみませんか? –
jsonが単純すぎるので、繰り返し値の配列。しかし、私はなぜ、リンクされたハッシュマップがハッシュマップを満たすためにforループの内部を明確にする必要があるのか理解したいのですか? – mpregos