2012-05-29 32 views
8

我有一類叫做如何爲列表創建JSONArray <Class name>

class Student { 
    String name; 
    String age; 
} 

我有一個返回List對象像

public List<Student> getList(){ 

List<Student> li =new ArrayList(); 
.... 

li.add(new Student('aaa','12')); 
... 

return li;  
} 

我需要的是列表轉換成JSONArray這樣

的方法
[{"name":"sam","age":"12"},{"name":"sri","age":"5"}] 

任何人都可以幫助我得到這個嗎?謝謝Advancee ..

回答

4

我想你不需要下載jettison jar文件。

使用JSONArrayJSONObject當你想直接映射對象JSON或要轉換JSON爲對象,你可以使用GSON庫,你可以很容易地轉換該列表爲JSON對象像@Juniad答案

1

JSON-lib的可能是你正在尋找的圖書館。你可以找到使用here的som例子。

13

你將不得不在包括jettison罐子項目和導入所需的類。

JSONObject jObject = new JSONObject(); 
try 
{ 
    JSONArray jArray = new JSONArray(); 
    for (Student student : sudentList) 
    { 
     JSONObject studentJSON = new JSONObject(); 
     studentJSON.put("name", student.getName()); 
     studentJSON.put("age", student.getAge()); 
     jArray.put(studentJSON); 
    } 
    jObject.put("StudentList", jArray); 
} catch (JSONException jse) { 
    jse.printStacktrace(); 
} 
+0

+這個答案安全我的晚上。 :) –

12

使用Gson圖書館這將是非常簡單的。

從JSON字符串對象的ArrayList爲:

Type listType = 
    new TypeToken<ArrayList<Student>>(){}.getType(); 
ArrayList<Student> yourClassList = new Gson().fromJson(jsonArray, listType); 

而到JSON的對象的數組列表爲:

ArrayList<Student> sampleList = new ArrayList<Student>(); 
String json = new Gson().toJson(sampleList); 

的GSON庫更簡單比JSONObjectJSONArray實現使用。

+1

你救了我的傍晚..!謝謝, – Suresh

+1

@Suresh歡迎您.. :) –

相關問題