对象的字符串日期属性被反序列化为另一种格式,即使它应保持不变

时间:2016-12-19 12:09:24

标签: c# .net serialization json.net

我正在尝试从表示Customer的字符串反序列化JArray个对象。其中一个属性是Date as string:

public class Customer: ICustomer
{
    [JsonProperty(Order = 0)]
    public string CreationDate{ get; set; }
}

在JSON中,CreationDate设置为"2015-12-31T00:00:00+01:00",这是我希望在反序列化对象中找到的确切字符串。

我写了以下内容来反序列化对象:

protected Collection<Customer> GetCustomers(string jsonText)
{
    var jobject = JArray.Parse(jsonText);
    var allClients = new Collection<Customer>()
    var jsonSerializer = new JsonSerializer
    { 
        DateParseHandling = Newtonsoft.Json.DateParseHandling.None;
    };

    foreach (var child in jobject.Children())
    {
        var customer= child.ToObject<Customer>(jsonSerializer);
        allClients.Add(customer);
    }
    return allClients;
}

但是,我反序列化的CreationDateCustomer的值等于"12/31/2015 00:00:00",就好像忽略了DateParseHandling属性一样。为什么呢?

0 个答案:

没有答案