2012-05-29 26 views
8

Tôi có một lớp được gọi làLàm thế nào để Tạo JSONArray cho một danh sách <Class name>

class Student { 
    String name; 
    String age; 
} 

Tôi có một phương thức trả về Danh sách đối tượng như

public List<Student> getList(){ 

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

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

return li;  
} 

tôi cần phải chuyển đổi danh sách đó vào JSONArray như

này
[{"name":"sam","age":"12"},{"name":"sri","age":"5"}] 

Bất kỳ ai cũng có thể giúp tôi thực hiện việc này không? Cảm ơn Advancee ..

Trả lời

4

Tôi nghĩ bạn không cần phải tải xuống tệp jar jettison.

Sử dụng JSONArrayJSONObject bạn có thể dễ dàng chuyển đổi danh sách đó vào đối tượng JSON như @Juniad câu trả lời

1

json-lib có khả năng thư viện bạn đang tìm kiếm. bạn có thể tìm thấy ví dụ về cách sử dụng here.

13

Bạn sẽ phải bao gồm dự án jettison trong dự án của mình và nhập các lớp được yêu cầu.

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

+ câu trả lời này an toàn vào tối của tôi. :) –

12

Sử dụng Gson Thư viện nó sẽ rất đơn giản.

Từ JSON String để ArrayList của Object như:

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

Và để Json từ mảng Danh sách đối tượng như:

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

Các Gson Thư viện là đơn giản hơn để sử dụng hơn JSONObjectJSONArray thực hiện .

+1

bạn đã lưu buổi tối của tôi ..! cảm ơn bạn, – Suresh

+1

@ Suresh Bạn được chào đón .. :) –

Các vấn đề liên quan