[英]JSON parsing fails for string but passes for number in 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\"";
...它會按您的預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.