【问题标题】:JSON parsing fails for string but passes for number in JavaJSON解析字符串失败,但Java中的数字通过
【发布时间】:2020-04-23 11:03:15
【问题描述】:

我正在为传入的 JSON 数据编写解析器,但 JSON 中的值没有明确的结构。例如,父 JSON 中的给定键可以具有整数或字符串值。在某些情况下,它也可以是另一个 JSON 字符串。在尝试使用 mongo-java-driver 库中的 JSON.parse() 方法时,我遇到了这种行为 -

String val = "45.55";
Object o = JSON.parse(val);
System.out.println(o);

上面的代码将o的值打印为45.55

String val = "product";
Object o = JSON.parse(val);
System.out.println(o);

上面的代码抛出了com.mongodb.util.JSONParseException

为什么两个代码 sn-ps 的行为方式不同?

【问题讨论】:

    标签: java json mongodb mongodb-java mongo-java-driver


    【解决方案1】:

    45.55 是与具有该值的数字有关的有效 JavaScript 文字。

    product 不是有效的 JavaScript 文字。 "product" 是。如果您将第二个示例更改为:

    String val = "\"product\"";
    

    ...它会按您的预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 2013-10-03
      • 2018-02-15
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多