2012-01-27 159 views
3

我試圖生成使用Java那種JSON字符串的(目的:海軍報的Android):如何從Java中正確生成JSONArray?

{ 
"data": [[1999, 1], [2000, 0.23], [2001, 3], [2002, 4], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]] 
} 

要做到這一點,我使用JSONArray是這樣的:

JSONArray jsonArray = new JSONArray(); 
jsonArray.put("[1999, 1]"); 
jsonArray.put("[2000, 0.23]"); 
jsonArray.put("[2001, 3]"); 
... 

但我得到的唯一結果是:

["[1999, 1]","[2000, 0.23]","[2001, 3]",..."[2008, 0.9]"] 

如何刪除括號之間的引號?我可以輸入數組的項目嗎?

在此先感謝!

回答

5

你在做什麼只是添加字符串到數組中。你不想要字符串,你想要嵌套數組。所以,你必須使用嵌套JSONArray對象的工作:

這裏的標準方式:

JSONArray nested1 = new JSONArray(); 
nested1.put(1999); 
nested1.put(1); 
jsonArray.put(nested1); 

或者simpler

jsonArray.put(new JSONArray(Arrays.asList(1999, 1))); 

或者even simpler

jsonArray.put(Arrays.asList(1999, 1)); 
// or use an int array: 
jsonArray.put(new int[]{1999, 1}); 
+0

非常感謝快速詳盡的答案!這工作很棒! – Thordax 2012-01-27 08:18:36