首页 > 解决方案 > JSON解析字符串失败,但Java中的数字通过

问题描述

我正在为传入的 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

为什么两个代码片段的行为方式不同?

标签: javajsonmongodbmongodb-javamongo-java-driver

解决方案


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

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

String val = "\"product\"";

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


推荐阅读