C# 如何避免Newtonsoft JObject.Parse类型转换

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"

当我解析包含有效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"];
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解决了我的问题。谢谢!