2011-12-11 50 views
2

我試圖返回有關guests(現在只有一個idname)的信息,但我無法弄清楚如何正確地執行此操作。我的方法是低於如何通過json返回數據

由於java不接受關聯數組,因此我如何僅將ID和名稱發送到myData.put()?我試過在這個方法中創建一個類來返回,但是在java中也是非法的。這裏有什麼創意解決方案?

/** 
* Retrieves representation of an instance of contentmanagement.ContentManagement 
* @return an instance of java.lang.String 
*/ 
@GET @Path("getHtml") 
@Produces("application/json") 
public String getGuests() { 
    JSONArray myData = new JSONArray(); 

    for(Guest item : guestDao.getAllGuests()) { 
     myData.put({}); 
    } 

    return myData.toString(); 
} 

回答

1

JSONObject類代表名稱 - 值對,所以你的代碼如下所示:

/** 
* Retrieves representation of an instance of contentmanagement.ContentManagement 
* @return an instance of java.lang.String 
*/ 
@GET @Path("getHtml") 
@Produces("application/json") 
public String getGuests() { 
    JSONArray myData = new JSONArray(); 

    for(Guest item : guestDao.getAllGuests()) { 
     myData.put(new JSONObject().put("id", item.getID()) 
      .put("name", item.getName())); 
    } 

    return myData.toString(); 
} 
+0

注意'JSONObject.put' []返回'this',讓您調用該方法多時代在一個鏈中。 (見http://www.json.org/javadoc/org/json/JSONObject.html) –

+0

我做到了......現在我得到一個'NullPointerException': - \ – Webnet

+0

你能指定哪個對象嗎? –