2013-03-21 27 views
7

tôi đang cố gắng bên dưới mã ....Làm thế nào để sử dụng phương pháp tích lũy JSON với danh sách?

public String listToJsonString(String keyName, List<StyleAttribute> attrs) { 
     JSONObject json = new JSONObject(); 
     json.accumulate(keyName, attrs); 
     return json.toString(); 
    } 

Nhưng khi tôi đang kiểm tra json biến nó chứa trống giá trị một cái gì đó như dưới đây

{ "MyKey": [{}, { }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}]}

Và khi tôi kiểm tra attrs biến nó chứa 22 phần tử Da ta.Điều gì tôi đang làm sai ở đây? Tôi chỉ chuyển đổi danh sách của tôi sang đối tượng Json và lưu vào cơ sở dữ liệu. Tôi đang sử dụng

import net.sf.json.JSONArray; 
import net.sf.json.JSONException; 
import net.sf.json.JSONObject; 

Trả lời

2

Bạn có thể sử dụng mã dưới đây

public String listToJsonString(List<StyleAttribute> attrs) { 
     JSONObject jObject = new JSONObject(); 
     try { 
      JSONArray jArray = new JSONArray(); 
      for (MyClass myObject: attrs) { 
       JSONObject styleJSON = new JSONObject(); 
       styleJSON.put("name",myObject.getName()); 
       styleJSON.put("rollNumber", myObject.getRollNumber()); 

       jArray.add(styleJSON); 
      } 
      jObject.put("keyName", jArray); 
     } catch (Exception jse) { 
     } 

     return jObject.toString(); 
    } 

Nó sẽ giải quyết vấn đề của bạn.

1

Không chắc chắn về điều này nhưng có thể các đối tượng trong Danh sách của bạn có thể được tuần tự hóa.

Ngoài ra, bạn sử dụng thư viện nào để quản lý JSON?

EDIT:

Vì vậy json-lib nó là!

Tôi thấy điều này trong FAQ json-lib:

Json-lib tạo JSONObjects trống từ lớp bean của tôi, giúp tôi!

Json-lib sử dụng quy ước JavaBeans để kiểm tra hạt của bạn và tạo JSONObjects. Nếu các thuộc tính của đậu của bạn không tuân theo quy định quy ước, kết quả JSONObject sẽ trống hoặc một nửa trống. Bạn phải cung cấp cặp phương thức đọc/ghi cho mỗi thuộc tính.

Dưới đây là các trang wikipedia nói về ước JavaBeans:

http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions

Hy vọng điều này sẽ giúp bạn!

+0

Phần câu hỏi đã chỉnh sửa để biết thêm thông tin –

+0

Nhưng danh sách đó chứa một hạt Java –

+0

Nếu các đối tượng trong danh sách của bạn thực sự là JavaBeans tôn trọng tất cả các quy ước JavaBeans, tôi không thể nghĩ ra bất cứ điều gì khác. Có lẽ bạn có thể đăng mã JavaBean của bạn? – Padrus

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