2012-03-28 63 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