【发布时间】:2017-02-06 06:24:25
【问题描述】:
我正在使用适用于 Android 的 Realm,我必须使用地图存储。但是,Realm 不支持地图,所以我按照建议 here
解决了这个问题但是,当我将要存储的数据序列化为 JSON 时,输出与预期相差甚远。
预期的 JSON:
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
我得到的是:
[{
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
},
{
"key": "key3",
"value": "value3"
}]
我的代码:
public class ActivityDetails extends RealmObject {
public RealmList<KeyValueStore> map;
public String bid;
public String s;
}
public class KeyValueStore extends RealmObject {
private String key;
private String value;
public void setKey(String key) {
this.key = key;
}
public void setValue(String value) {
this.value = value;
}
}
有没有办法像预期的那样序列化地图之类的数据?
编辑:以下是我的数据的完整对象(如预期的那样)
{
"s": "someValue",
"bid": "someValue",
"map": [
{
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
},
{
"key": "key3",
"value": "value3"
}
]
}
【问题讨论】:
-
什么是
ActivityDetails?这个问题不完整。 -
ActivityDetails 是一种用于存储数据的模型,如 geisshirt 在stackoverflow.com/questions/35311755/… 中的回答所示,我在问题中提供了该链接。但是,我认为它不能解决任何问题,或者这会使问题不完整。
-
您使用的是什么序列化程序?格森?
-
是的,序列化器是Gson
-
您可以设置独占策略并编写自定义序列化程序来解决此问题。