我正在擺脫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 !!這裏的一些說明「}
質詢
- 在文檔的JSONObject的沒有JSONObject.put(名稱,對象)的提調用對象‘的toString’功能,因此如何/爲什麼它這樣做呢?在現實中我LocationModel類有返回字符串,所以它不是一個返回字符串的唯一功能等功能。
好吧,剛纔看了一下java對象的文檔,我看到他們有方法toString(),我猜在使用put的時候會自動調用這個方法嗎?如果其他人認爲我應該刪除這個問題。 – IamAlexAlright 2012-03-28 21:34:50