Проблема с JSONValue - PullRequest
       9

Проблема с JSONValue

0 голосов
/ 03 ноября 2010

Я что-то здесь упускаю?Почему я не могу получить то, что кладу?

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 Ответ

2 голосов
/ 03 ноября 2010

Это ошибка 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

...