在将String解析为hashmap时,GSON解析错误

时间:2019-02-16 06:48:06

标签: java android json parsing gson

我正在尝试使用Gson解析字符串

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

我为此收到了JSONSyntax异常。如果我将字符串更改为“ {key = samplevalue}”,则可以正常工作(已删除空间)。谁能解释一下。应该怎么做才能将哈希图显示为“ key” =“ sample value”

2 个答案:

答案 0 :(得分:1)

JSON specification中, key value (如果是字符串类型)都必须用双引号引起来。因此,在您的示例中,有效的JSON是:

{"key":"sample value"}

在Java中"应该被转义:

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

答案 1 :(得分:0)

您的代码无法编译

您必须将 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