【问题标题】: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

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多