我正在摆脱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