Memcache 可序列化 JSONObject?
我正在使用 json.org JSONObject。我尝试将其序列化到内存缓存,但得到了不太酷的 java.io.NotSerializedException: org.json.JSONObject
。看看 JSONObject 代码 似乎它只不过是一个由 JSON 包裹的 Map逻辑。那为什么不让它可序列化呢?
我希望能够以简单的界面将对象存储到内存缓存中。是否有类似的 JSONObject API 实现,它也是可序列化的。或者,您使用哪种内存缓存友好的序列化/反序列化技术?
谢谢你, 格言。
I'm using json.org JSONObject. I've tried to serialize it to memcache and got the not so cool java.io.NotSerializableException: org.json.JSONObject
. Looking at the JSONObject code it seems that it's nothing more then a Map wrapped by JSON logic. Why not make it serializble then?
I would like to be able to store the object into memcache in an easy interface. Is there a similar API implementation of JSONObject that is also serializble. Alternatively, what memcache friendly serialization / deserialization technique do you use ?
Thank you,
Maxim.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
JSONObject
意味着作为简单字符串发送。因此,您应该存储字符串化形式,而不是存储JSONObject
的 Java 序列化形式。JSONObject
s are meant be sent as simple strings. So instead of storing the Java serialized form of yourJSONObject
s you should store the stringified forms.如果您使用 org.json.JSONObject,它不会实现 Serialized 接口。因此它无法序列化。相反,您可以将 JSONObject 的 String 版本放入 MemCache 中。
if you use org.json.JSONObject, it doesn't implement the Serializable interface. For that reason it can't be serialized. Instead, you can put the String version of JSONObject into MemCache.
我发现http://code.google.com/p/json-simple/ org.json.JSONObject 的 API 兼容实现。它没有所有的 getDouble、getLong、getJSONArray 方法,但除此之外,概念几乎相同。
它优于 org.json 实现,因为它只是扩展了 JSONObject 的 HashMap 和 JSONArray 的 ArrayList,使这些对象根据定义可序列化,从而可缓存。
I have found http://code.google.com/p/json-simple/ to be API compatible implementation of org.json.JSONObject. It does not have all the getDouble, getLong, getJSONArray methods but other then that the concepts are pretty much the same.
It excels over org.json implementation by the fact that it simply extends HashMap for JSONObject and ArrayList for JSONArray making these objects by definition serializble and thus cacheable.