我完全错过了什么吗?为什么我不知道我要放的是什么?
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
答案 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