JSONValue的问题

时间:2010-11-03 18:05:09

标签: java json json-simple

我完全错过了什么吗?为什么我不知道我要放的是什么?

Set<String> stringSet = new LinkedHashSet<String>();
stringSet.add("firstName");
Map<String,Object> payload = new LinkedHashMap<String,Object>();
payload.put("properties", stringSet);

String sPayload = JSONValue.toJSONString(payload);
payload = (Map<String, Object>) JSONValue.parse(sPayload); // <-- payload == NULL

1 个答案:

答案 0 :(得分:2)

这是一个json-simple错误(从1.1版开始) - 它不知道如何将Set转换为JSON数组,因此最终只调用toString()在它上面并逐字插入结果。

因此,您的JSON看起来像:

{"properties":[firstName]}

导致JSONValue.parse()阻塞不加引用的firstName

如果您使用List,它可以正常运行:

{"properties":["firstName"]}

关于此问题存在未解决的问题:http://code.google.com/p/json-simple/issues/detail?id=23