2012-03-28 59 views
0

我正在擺脫Serializable對象(需要緩存和移動東西 - 每個人似乎都說遠離Serializable對象)並開始寫入方法以將我的複雜對象轉換爲JSONObjects。使用方法Put構建JSONObjects

重點:我已經開始玩弄如何從我的複雜對象中創建JSONObjects。我天真地只是嘗試這樣做:

JSONObject toReturn = new JSONObject(); 
    Iterator<LocationModel> locIter = locationList.iterator(); 

    while (locIter.hasNext()) 
    { 
     try { 
      toReturn.put("location", locIter.next()); 
     } catch (JSONException e) { 
     } 
    } 

其中LocationModel看起來是這樣的:

public class LocationModel implements Serializable { 

private String name; 
private double Longitude; 
private double Latitude; 
private String description; 

public LocationModel(
     basic construtor sets variables above 
} 

public String toString() 
{ 
    return (name + " 8888 " + longitude + "/" + latitude + " !! " + description); 
} 

}

現在奇怪的事情(我ATLEAST)的事實是,在第一個迭代器後代碼塊是完整的,我輸出的JSONObject爲一個字符串,我看到它的樣子:

{「位置」:「LOCATIONNAME 8888 -1/1 !!這裏的一些說明「}

質詢

  1. 在文檔的JSONObject的沒有JSONObject.put(名稱,對象)的提調用對象‘的toString’功能,因此如何/爲什麼它這樣做呢?在現實中我LocationModel類有返回字符串,所以它不是一個返回字符串的唯一功能等功能。
+0

好吧,剛纔看了一下java對象的文檔,我看到他們有方法toString(),我猜在使用put的時候會自動調用這個方法嗎?如果其他人認爲我應該刪除這個問題。 – IamAlexAlright 2012-03-28 21:34:50

回答

1

我會強烈建議您使用GSON一開始,如果您需要額外的速度的其他一些json解析器,你可以稍後替換gson。已用於幾個大型項目,它只需要幾天的項目:) https://sites.google.com/site/gson/gson-user-guide Gson是解碼和編碼Java對象到JSON的庫。它的重量非常輕但不是最快的,但它是最快速的集成,無論對象的大小和複雜程度如何,只要你有域對象爲您的工作數據。

+0

是的,那簡直太簡單了:D – IamAlexAlright 2012-03-28 22:13:37