JSON的字符串解析失败,但Java的数字解析传递

问题描述 投票:0回答:1

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

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

java json mongodb mongodb-java mongo-java-driver
1个回答
2
投票

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

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

String val = "\"product\"";

...它将按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.