2013-06-28 96 views
11

我有一個模型類方法,它返回包含所有註冊用戶詳細信息的對象列表。我想獲取all()方法重新調用的列表,並將數據轉換爲JSON對象並將其作爲字符串傳遞給視圖。我怎樣才能將這個數組列表轉換爲JSON對象?將數組列表轉換爲json對象字符串

我無法通過以下要做到這一點:

ObjectMapper mapper = new ObjectMapper(); 
JSONObject json = new JSONObject(); 
JsonNodeFactory jsonnode = JsonNodeFactory.instance; 
ObjectNode result = new ObjectNode(jsonnode); 
for (int i = 0; i < list.size(); i++) { 
    json.put(list.get(i).fname, list.get(i)); 
    System.out.println(json.get("fname")); 
} 

@Entity 
class Mydata extends Model { 

    @Id 
    public Long Id; 
    public String fname; 
    public String lname; 
    public String city; 
    public String state; 
    /****************** READ/select OPERATION *****************/ 
    public static Finder < Long, Mydata > finder = new Finder(Long.class, Mydata.class); 

    public static List <Mydata> all() { 
     return finder.all(); 
    } 
    public static void createuser(Mydata user) { 
     user.save(); 
    } 
} 
+0

等待等待;你在這裏混合了Jackson和org.json! – fge

+0

可能的複製http://stackoverflow.com/questions/5813434/trouble-with-gson-serializing-an-arraylist-of-pojos –

+0

[數組列表轉換爲JSON對象字符串] [1] [1]:http://stackoverflow.com/questions/4841952/convert-arraylistmycustomclass-to-jsonarray/30193029#30193029 –

回答

1

不要打擾org.json,使用傑克遜一路:

// list is a List<MyData> 
final ObjectMapper mapper = new ObjectMapper(); 
final Map<String, MyData> map = new HashMap<>(); 
for (final MyData data: list) 
    map.put(data.fname, data); 
final JsonNode json = mapper.valueToTree(map); 
18

要的ArrayList轉換成JSON,只是下載開源JSON實用工具: http://json.org/java/或JAR文件從here

而只是做:

JSONArray jsonAraay = new JSONArray(your_array_list); 

就是這樣

注意:你應該有二傳手/吸氣劑的POJO /模型類轉換的ArrayList到JSON

0

你可以使用像其他各種第三方庫在這裏建議,或者只是使用這個播放自己的簡化方法(在play.libs.Json中)與傑克遜對象的作品,但它集成到框架,需要很多更少的代碼來使用,例如:

JsonNode myJsonNode = Json.toJson(MyListObject);該列表轉換爲JsonNode對象,然後使用類似String jsonResult = Json.stringify(myJsonNode);的東西將其轉換爲字符串表示形式。

如果您在模板中使用JSON,請不要忘記將其包裝爲@Html(myJsonString)之類的東西,這樣它就不會漏掉任何東西。否則,如果您只是將純JSON輸出到瀏覽器,則簡單的return ok(jsonResult);將起作用,因爲Play會自動設置內容類型。

參考鏈接:http://www.playframework.com/documentation/api/2.0/java/play/libs/Json.html

+0

嗨網友,我想從Java方法(以json數組字符串的形式)傳遞數據,以我的觀點。所以基本上我正在尋找一個「JAVA」函數來將列表列表轉換爲json對象數組.... – pret

+0

我發佈的內容應該爲您做 - 它將Java List對象轉換爲JSON字符串,然後將其解釋爲你的模板由Javascript解釋器作爲JSON數組(只要你沒有像我所展示的那樣逃脫)。您可以將生成的JSON數據直接放入模板中,或者創建一個AJAX API以像上面顯示的純文本一樣提供它。無論哪種方式,如果我明白你的意思,我上面提到的應該適合你。謝謝。 –

相關問題