Ошибка разбора GSON при разборе String в hashmap - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь разобрать строку, используя Gson

String str = "{key=sample value}";
new Gson().fromJson(str, HashMap.class())

Я получаю исключение JSONSyntax для этого.Если я изменю строку на "{key = samplevalue}", она будет работать нормально (удаленный пробел).Может кто-нибудь, пожалуйста, объясните.Что нужно сделать, чтобы я получил hashmap в виде "key" = "sample value"

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

ваш код не компилируется

вам придется заменить class () на class , необходимо улучшить формат JSON, если это необходимоулучшить формат JSON, добавив кавычки и апостроф

String str = "{'key'='sample value'}";
HashMap hashMap = new Gson().fromJson(str, HashMap.class);
System.out.println(hashMap);  /// ===> {key=sample value}

или

String str = "{\"key\":\"sample value\"}";;
HashMap hashMap = new Gson().fromJson(str, HashMap.class);
System.out.println(hashMap);  /// ===> {key=sample value}

теперь работает

https://sites.google.com/site/gson/gson-user-guide#TOC-Using-Gson

http://tutorials.jenkov.com/java-json/gson.html#parsing-json-into-java-objects

0 голосов
/ 16 февраля 2019

В спецификации JSON , оба значения key и value (если это строка типа) должны быть в двойных кавычках.Итак, в вашем примере допустимый JSON:

{"key":"sample value"}

, который в Java, " должен быть экранирован:

String str = "{\"key\":\"sample value\"}";
...