1

我在将 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);

有什么建议么?

4

1 回答 1

6

您的第二个示例不是有效的 JSON。回想一下 JSON 基于 JavaScript,在该语言中,任何以 0 开头的数字文字都被解释为八进制数。有效的八进制数字是 0-7,所以如果字面量包含 8 或 9,那么它不能被解析并且会引发错误。('010203' 有效,因为它是有效的八进制文字,但 '070809' 不是)

于 2018-07-24T07:17:03.617 回答