C# 如何避免Newtonsoft JObject.Parse类型转换
当我解析包含有效RFC3339 datetimestring的字符串时,JOject.parse()会自动将implizit类型转换为DateTime:C# 如何避免Newtonsoft JObject.Parse类型转换,c#,parsing,json.net,C#,Parsing,Json.net,当我解析包含有效RFC3339 datetimestring的字符串时,JOject.parse()会自动将implizit类型转换为DateTime: String toParse = "{\"datetime\": \"2020-08-04T23:45:00+02:00\"}"; JObject p = JObject.Parse(toParse); String d = (String)p["datetime"
String toParse = "{\"datetime\": \"2020-08-04T23:45:00+02:00\"}";
JObject p = JObject.Parse(toParse);
String d = (String)p["datetime"];
Console.Write(d);
// Gives 08/04/2020 23:45:00
// But I want 2020-08-04T23:45:00+02:00
我认为“不需要的”类型转换是在读取p[“datetime”]
时发生的,而不是在JOject.Parse()
期间发生的,但是我如何才能完全避免这种行为,让它只将所有内容反序列化为字符串呢
我有不同类型的问题,也有自动转换的小数,因为我需要它们作为字符串
谢谢大家! 这回答了你的问题吗?有
Value()
方法。。。我把它作为一个副本关闭,然后我看到了你的最后一句话:我对不同的类型有这个问题,也有自动转换的小数,因为我需要它们作为字符串。不幸的是,使用JSON.NET无法获取JSON编号的原始文本。您最好使用FloatParseHandling将其解析为decimal
,而不是double
。decimal
,请参阅。你想让我重新打开它吗?我能给出的唯一建议是切换到不改变数值的原始文本。DateParseHandling.None和FloatParseHandling.Decimal解决了我的问题。谢谢!这回答了你的问题吗?有Value()
方法。。。我把它作为一个副本关闭,然后我看到了你的最后一句话:我对不同的类型有这个问题,也有自动转换的小数,因为我需要它们作为字符串。不幸的是,使用JSON.NET无法获取JSON编号的原始文本。您最好使用FloatParseHandling将其解析为decimal
,而不是double
。decimal
,请参阅。你想让我重新打开它吗?我能给出的唯一建议是切换到不改变数值的原始文本。DateParseHandling.None和FloatParseHandling.Decimal解决了我的问题。谢谢!