【问题标题】:GSON parsing error while parsing String to hashmap将字符串解析为哈希图时 GSON 解析错误
【发布时间】:2019-02-16 06:48:05
【问题描述】:

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

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

我得到了一个 JSONSyntax 异常。如果我将字符串更改为“{key=samplevalue}”,它可以正常工作(删除空间)。谁能解释一下。应该怎么做才能让我得到 hashmap 作为 "key" = "sample value"

【问题讨论】:

  • 尝试在您的字符串中添加转义字符 \"。即"{\"key\"=\"sample value\"}"

标签: java android json parsing gson


【解决方案1】:

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

{"key":"sample value"}

在 Java 中," 应该被转义:

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

【讨论】:

  • 除此之外,键/值分隔符是冒号,不等于。 {"key" : "value"}
【解决方案2】:

您的代码无法编译

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

【讨论】:

    猜你喜欢
    • 2014-07-10
    • 2013-02-04
    • 2019-04-04
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2014-07-24
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多