使JSONObject可序列化

4
JSONObject类位于org.codehaus.groovy.grails.web.json包中,没有实现Serializable接口。
由于我正在使用应用程序服务器之间的会话复制,并且JSONObject被保存在会话中,因此我希望将此对象序列化。
我有两个选项来实现这一点:
1. 子类化实现了Serializable接口的JSONObject。 2. 在将此对象保存在会话中时,使用toString()方法对JSONObject对象进行转换。
请问有人能够建议我应该使用哪一个选项以及原因吗?
2个回答

6
我认为toString方法是这里应该使用的方法。该方法已经返回对象的JSON文本,适用于传输或存储。

在将对象保存到会话中时使用toString()是可以的,但是当我从会话中获取该对象时,我将得到一个字符串,然后需要从该字符串构造JSONObject。 - user1180463
@user1180463:没错,你可以使用JSONObject(java.lang.String string)构造函数来实现。我不知道这种方法相比于序列化/反序列化对象是否会有更多或更少的性能影响。不管哪种方法都需要一些对象创建开销。 - Bill the Lizard

1

您不需要将JSON序列化,因为它已经是可存储的格式(JSON的全部意义就在于此)。Grails已经拥有了可以立即使用的JSON解析器和"slurpers"。因此,只需将JSON数据存储为字符串,并在其上使用解析器以从文件中读取它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接