我正在远离Serializable对象(需要缓存和移动东西 - 每个人似乎都说要远离Serializable对象)并开始使用write方法将我的复杂对象转换为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);
}
}
现在奇怪的事情(至少对我而言)是在第一块代码中的Iterator完成之后,我将JSONObject作为字符串输出,我看到它看起来像:
{“location”:“LocationName 8888 -1/1 !!这里有一些描述”}
问题
答案 0 :(得分:1)
我强烈建议你使用gson作为开始,如果你需要一些其他json解析器的额外速度,你可以在以后替换gson。已经将它用于几个大型项目,它只需要几天的项目:) https://sites.google.com/site/gson/gson-user-guide Gson是一个用于解码和编码json的java对象的库。它的重量非常轻但不是最快的,但它是最快的集成,用于编码和解码对象的字面上的oneliner,无论对象有多大和多么复杂,只要你有域对象对于您正在使用的数据。