不要将JToken日期时间字符串转换为DateTime

试图将日期时间为字符串的JToken解析为字符串。 它隐含地将它视为DateTime,解析然后作为字符串传回。

原值为: "2015-11-23T00:00:00"

当我做arr["value"].ToString(); 我明白了: "23/11/2015 00:00:00"

我真正想要的是传递的东西,即原始值。

尝试过使用Formatting.None ,但是会引入双引号等。

有一个简单的方法吗?

使用DateParseHandling覆盖JSON.NET自动尝试DateTimeify任何看起来像DateTimey的东西。

 void Main() { var s = "{ \"value\" : \"2015-11-23T00:00:00\" }"; using (var sr = new StringReader(s)) using (var jr = new JsonTextReader(sr) { DateParseHandling = DateParseHandling.None }) { var j = JToken.ReadFrom(jr); Console.WriteLine(j["value"].ToString()); // prints '2015-11-23T00:00:00' } } 

您可以使用声明为’string’的成员描述该类,并在序列化中使用它,以便它存储在原始表示中:

 public class MyObject { public string date { get; set ; } } string json = "{ \"date\": \"2015-11-23T00:00:00\" }"; var myObj = JsonConvert.DeserializeObject(json); Console.WriteLine(myObj.date);