【发布时间】:2017-07-28 09:58:02
【问题描述】:
我一直在玩弄 org.json 库。我试图将枚举类型列表附加到 json 对象,但生成的 json 数组为空。这就是我的意思:
attribEffects 应该分别保存“HEALTH”和“AMMO”。
{"attr": [
{
"amount": [1000],
"mult": [0],
"attribId": [0],
"time": [-1],
"attribDesc": [null],
"attribName": ["Health Buff (1000)(Debug)"],
"attribEffects": [{}]
},
{
"amount": [5],
"mult": [0],
"attribId": [1],
"time": [5],
"attribDesc": [null],
"attribName": ["devgun_ammo"],
"attribEffects": [{}]
}
]}
这是我写给它的地方:
for(Attribute a : (List<Attribute>) l) {
JSONObject j = new JSONObject();
j.append("attribName", a.getAttribName());
j.append("attribId", a.getAttribId());
j.append("attribDesc", a.getAttribDesc());
j.put("attribEffects", a.getEffects());
for(Object o : a.getEffects())
System.out.println(o.toString());
// j.append("attribEffects", a.getAffects()); //TODO: Debug me
j.append("amount", a.getAmount());
j.append("mult", a.getMult());
j.append("time", a.getTime());
root.append("attr", j);
}
用于验证的 System.out.println 的输出:
HEALTH
AMMO
有什么想法吗?
编辑: 我意识到为单个值创建一个数组是没有意义的,但我希望它可以扩展,以防单个事物具有多种效果
【问题讨论】:
-
这不是完全重复,但它是同样的问题,谢谢,这实际上帮助了我。
-
看来 JSONObject 不支持枚举
-
据我所知,它不支持没有任何数据的枚举,是的。解决此问题的两种方法是获取枚举名称并将其保存为字符串,或提供枚举数据。我可能会使用枚举名称,因为无论如何这就是它在这种情况下的全部用途。