簡體   English   中英

JSON 解析字符串失敗,但通過 Java 中的數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM