【问题标题】:Newtonsoft Serialize: strings with leading zerosNewtonsoft Serialize:带前导零的字符串
【发布时间】:2021-12-30 21:29:20
【问题描述】:
我有一个简短的问题:
为什么会这样
Newtonsoft.Json.JsonConvert.DeserializeObject<string>("768")
但这不是
Newtonsoft.Json.JsonConvert.DeserializeObject<string>("0768")
【问题讨论】:
标签:
c#
json
.net
serialization
logic
【解决方案1】:
在Json字符串中应该有2组“”,试试这个
string s= Newtonsoft.Json.JsonConvert.DeserializeObject<string>("\"0768\""); // 0768
如果只有一组,json将字符串反序列化为数字
int i= JsonConvert.DeserializeObject<int>("768"); //768
但由于某些原因,任何从零开始的数字都会导致异常
int i= JsonConvert.DeserializeObject<int>("0768");
这是一个众所周知的错误,在 Json 文档中
但是如果你尝试这个,你会得到一个异常
string s= JsonConvert.DeserializeObject<string>("abc")
没关系
string s= JsonConvert.DeserializeObject<string>("\"abc\""); //abc