【问题标题】:Parsing unquoted JSON keys using org.json.simple in Java在 Java 中使用 org.json.simple 解析不带引号的 JSON 键
【发布时间】:2020-05-14 14:04:43
【问题描述】:

我有一个 JSON 存储在一个字符串中。

String data = "{code: '0', distCode: '123'}";

我需要获取代码 distCode 的值。但是当我尝试如下解析它时

JSONParser parser = new JSONParser();
JSONObject Details = (JSONObject) parser.parse(data);

位置 2 处的意外字符 (c) 抛出异常。

我确定这是因为字符串中没有引用键。如何使用 org.json.simple 库将字符串解析为 JSON 对象?

【问题讨论】:

  • 让它看起来像这样"{\"code\":\"'0\", \"distCode\": \"123\"}"
  • 我不认为你可以;它不是有效的 JSON。您也许能够做一些棘手的事情,例如使用嵌入式 JavaScript 引擎将其评估为 JavaScript 对象。

标签: java json


【解决方案1】:

找不到使用 org.json.simple 库来实现它的方法。终于用杰克逊库完成了。

    String data = "{code: '0', distCode: '123'}";
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);                               
    mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
    Map<String, String> Shop_Details = mapper.readValue(data), Map.class);

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2012-10-20
    • 2018-03-21
    相关资源
    最近更新 更多