簡體   English   中英

為什么反序列化到字典時JsonConvert會引發異常

[英]Why is JsonConvert throwing exception when deserializing to a dictionary

我在將JSON字符串序列化為鍵/值字典時遇到問題。 代碼如下:

var parameters = "{\"id\":123}";
JsonConvert.DeserializeObject<Dictionary<string, string>>(parameters);

這個例子看起來很完美,給了我{[id,123]}。

現在。 當我將數字更改為“ 070809”時,突然出現異常: “ Newtonsoft.Json.JsonReaderException:輸入字符串'070809'不是有效數字。路徑'id',第1行,位置12。---> System.FormatException:其他不可解析的字符位於字符串的末尾。”

var parameters = "{\"id\":070809}";
JsonConvert.DeserializeObject<Dictionary<string, string>>(parameters);

有什么建議么?

您的第二個示例不是有效的JSON。 回想一下,JSON是基於JavaScript的,在該語言中,任何以0開頭的數字文字都將被解釋為八進制數。 有效的八進制數字是0-7,因此,如果文字包含8或9,則無法對其進行解析,並且會引發錯誤。 (“ 010203”有效,因為它是有效的八進制文字,但“ 070809”無效)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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