Orijinal dize alamayan, tarih dizeleri, JsonReader
'un kendi içinde DateTime
yapısına dönüştürülür ve dönüştürülür. Eğer yaparsanız bunu görebilirsiniz:
Console.WriteLine(((JValue)data["SimpleDate"]).Value.GetType()); // Prints System.DateTime
Ancak, yaparak ISO 8601 formatında tarihleri çıkarabilir:
var value = JsonConvert.SerializeObject(data["SimpleDate"]);
// value is "2012-05-18T00:00:00Z"
Bu işlem her zaman JSON ilgili dize biçiminde bir JValue
çıktı. Orijinal tarihleriniz bu formatta olduğundan, ihtiyaçlarınızı karşılayabilir.
(Doğrusu, JObject.ToString()
çıktı ISO biçiminde tarihleri içerdiği gelmez göz önüne alındığında, sigara ISO biçiminde sürpriz JValue.ToString()
çıkışları tarihleri değilim.)
Eğer JObject
okurken ayarlarını değiştirmek mümkün olsaydı, ilgilenir misin JsonSerializerSettings.DateParseHandling = DateParseHandling.None
kullanın: Eğer DeserializeObject
kullanmak gerekir, böylece bir JsonSerializerSettings
alır JObject.Parse()
için hiçbir aşırı yük yoktur
var settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None };
var data = JsonConvert.DeserializeObject<JObject>(@"{
""SimpleDate"":""2012-05-18T00:00:00Z"",
""PatternDate"":""2012-11-07T00:00:00Z""
}", settings);
var value = data["SimpleDate"].Value<string>();
Debug.WriteLine(value); // Outputs 2012-05-18T00:00:00Z
bu. Bu ayar sonunda JsonReader.DateParseHandling
'a yayılır.
kötü Yani: Bir JObject alır ve bir düzenli ifade deseni ile böyle bir tarih dizesi doğrulamak olabilir JSON Şema doğrulayıcı, üzerinde çalışıyorum. Bu, değer bir DateTime'a dönüştürüldüğünde artık eşleşmiyor ... –
Belki bir parça [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) sorunu burada olabilir ? Json.NET'in geçerliliğinizdeki tarihi önceden tanımış ve ayrıştırdığı gerçeğinden yararlanabilir misiniz? Sonuçta JSON'da tarihler için standart yok, bkz. Http://www.newtonsoft.com/json/help/html/DatesInJSON.htm. – dbc
Tek seçenek JObject oluştururken tarih ayrıştırma devre dışı bırakmak için ... burada orijinal sorun: https://github.com/NJsonSchema/NJsonSchema/issues/22 –