java - 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
为什么两个代码片段的行为方式不同?
解决方案
45.55
是与具有该值的数字有关的有效 JavaScript 文字。
product
不是有效的 JavaScript 文字。"product"
是。如果您将第二个示例更改为:
String val = "\"product\"";
...它会按您的预期工作。
推荐阅读
- r - R:如何预先分配一个空数据框列表?
- spring-boot - RabbitMQ 在消费消息时我得到没有找到类的方法 [B 异常
- list - 在 Raku 中简洁地将单词的字符转换为它的 ascii 代码列表
- amazon-web-services - Django 中带有 Celery 的 AWS SQS
- embedded - 使用 NodeMCU 时 Miniterm 未显示有效输出
- javascript - 在模态中使用 jQuery 编辑数据将不起作用
- google-apps-script - 将范围复制到使用模板创建的另一个电子表格
- firebase - SwiftUI - 如何在 TextView 中格式化 Firestore 时间戳
- javascript - TypeScript:关于可选链接的困惑
- javascript - 带有 forEach 循环的常量声明