2013-03-31 83 views
16

我想在android上創建這個JSON對象。我堅持如何在對象中添加字符串數組。如何在JSON對象中添加字符串數組?

A = { 
    "class" : "4" , 
    "name" : ["john", "mat", "jason", "matthew"] 
    } 

這是我寫的代碼:

import org.json.JSONObject; 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", ["john", "mat", "jason", "matthew"]); 

但最後一行給出了一個錯誤。任何方式過去呢?

回答

36

湯姆建議的一點不正確的方法。優化代碼將是:

ArrayList<String> list = new ArrayList<String>(); 
list.add("john"); 
list.add("mat"); 
list.add("jason"); 
list.add("matthew"); 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", new JSONArray(list)); 
+1

這是正確的Java方式。選定的答案可行,但不是這樣做的正確方法。 – zeeshan

+0

做得更好的方法應該被接受。 –

2

因爲這個,你正在得到錯誤。

school.put("name", ["john", "mat", "jason", "matthew"]); 
       ^        ^ 

這樣做。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

沒有幫助好友 – VenkateshShukla

+0

@VenkateshShukla你現在有什麼問題? –

+0

對不起,延遲....湯姆說下面解決了我的問題... – VenkateshShukla

6

由於您的最後一行是無效的Java,您將收到錯誤消息。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

這解決了它......其實我不得不做一個新的JSONArray,並把所有的數據。非常感謝 – VenkateshShukla

2

@ bhavindesai's,答案是很好的答案。這是解決這個問題的另一種方法。您可以簡單地使用Json Simple庫進行操作。這裏是gradle這個

compile 'com.googlecode.json-simple:json-simple:1.1' 

下面是示例代碼:

org.json.simple.JSONObject jsonObject=new org.json.simple.JSONObject(); 
jsonObject.put("Object","String Object"); 

ArrayList<String> list = new ArrayList<String>(); 
      list.add("john"); 
      list.add("mat"); 
      list.add("jason"); 
      list.add("matthew"); 

      jsonObject.put("List",list); 

就是這樣。 :)

相關問題