我正在寻找在我的 Android 项目中序列化对象的替代方案。我发现Wobly看起来又快又小。我了解如何使用 WoblyImpl
创建 Wobly
包装器,但我完全不知道如何从文件系统写入/读取这些对象?何时运行 WoblyGenerator
以及可以在我的代码中完成吗?有人可以发布代码示例吗?
最佳答案
Wobly 不支持未知对象字段。所以字段如下:
Object a;
List<Object> b;
Map<Integer, Object> c;
无法使用 Wobly 进行序列化。 它支持所有原始类(及其盒装对应类)、所有 Wobly 类以及上述的任何 Array/List/Map 组合。
所以在你的情况下,问题是 JSONArray
实现List<Object>
。如果你知道是什么样的物体JSONArray
例如 List<Map<Integer, String>>
成立,你可以写:
class Example extends WoblyImpl {
@WoblyField(id = 0)
List<Map<Integer, String>> array;
public void setArray(JSONArray json) {
array = (List)json;
}
}
虽然反序列化后你会得到 ArrayList<HashMap<Integer,String>>
而不是JSONArray
返回。
如果你不知道什么对象JSONArray
如果可能的话,让它与 Wobly 一起工作将是痛苦的。您可以在这里查看序列化库的全面比较:
https://github.com/eishay/jvm-serializers/wiki
关于java - 如何在 Android 上使用 Wobly 序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9334067/