0

我在这里完全错过了什么吗?为什么我放的东西放不出来?

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
4

1 回答 1

2

这是一个简单的 json错误(从 1.1 版开始)——它不知道如何将 aSet转换为 JSON 数组,所以它最终只是调用toString()它并逐字插入结果。

结果,您的 JSON 如下所示:

{"properties":[firstName]}

这导致JSONValue.parse()在未引用的firstName.

如果您使用 aList它可以正常工作:

{"properties":["firstName"]}

关于这个问题有一个未解决的问题:http ://code.google.com/p/json-simple/issues/detail?id=23

于 2010-11-03T18:32:40.437 回答