我正在開發一個android應用程序。 我必須建立在PHP供應以下JSONJSON和java之間需要說明的地圖
[{"id":"1","number":"2"},{"id":"3","number":"4"},{"id":"5","number":"6"},{"id":"7","number":"8"}]
我完成與HttpClient的在PHP(Web服務器)連接的部分,並將其保存到字符串的API。 現在我想將其保存在本地收集(我用的HashMap !!!不要;知道這是否是最好的!!!!任何建議是歡迎)。因爲我的JSONObject數組的定義,我想聲明如下:HashMap<Integer, LinkedHashMap<String, String>> hashmap;
一般的想法是保存integer
一個索引,並在LinkedHashMap<String, String>
每個jsonobject。我想的HashMap的實例是什麼:
hashmap[0] = {"id":"1","number":"2"}
hashmap[1] = {"id":"3","number":"4"}
hashmap[2] = {"id":"5","number":"6"}
的代碼失敗:
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的一貫的最後一項 - >"id":"7","number":"8"
但是,如果我做的聲明LinkedHashMap<String, String> linkedmap = new LinkedHashMap<String, String>();
裏面的for loop
它的工作原理。
可以解釋我的人這是爲什麼會發生?
你爲什麼不使用像http://jackson.codehaus.org一個真正的JSON解析庫? – fge 2011-12-18 23:04:41
爲什麼你不使用數組類型的JSON數組? – 2011-12-19 02:42:47
因爲json太簡單了,重複值的數組。雖然,我想了解爲什麼linkedhasmap需要在for循環中進行澄清以便填充hashmap ????? – mpregos 2011-12-19 10:41:07