Ne convertissez pas la chaîne de date / heure JToken en DateTime

Essayer d’parsingr JToken qui contient date-heure sous forme de chaîne, sous forme de chaîne. Implicitement, ce qu’il fait est de le considérer comme DateTime, de l’parsingr puis de le renvoyer sous forme de chaîne.

La valeur d’origine est: "2015-11-23T00:00:00"

Quand je fais arr["value"].ToSsortingng(); Je reçois: "23/11/2015 00:00:00"

Ce que je veux vraiment, c’est ce qui a été passé, c’est-à-dire la valeur initiale.

J’ai essayé d’utiliser Formatting.None , mais cela amène des guillemets, etc.

Y a-t-il un moyen simple?

Utilisez DateParseHandling pour substituer les tentatives automatiques de JSON.NET à DateTimeify tout ce qui ressemble à DateTimey.

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

Vous pouvez décrire la classe avec ce membre déclaré en tant que ‘chaîne’ et l’utiliser dans la sérialisation, afin qu’elle soit stockée dans la représentation d’origine:

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