Newtonsoft.Json不能为一个字符串字段和一个日期时间字段工作

本文关键字:一个 字段 日期 时间 工作 字符串 Newtonsoft 不能 Json | 更新日期: 2023-09-27 18:12:11

我使用Newtonsoft。Json在PCL项目的Xamarin。Android项目。

我是这样使用的:

var r = await _client.GetAsync("users/login?email=" + e+ "&password=" + p);
string c = await r.Content.ReadAsStringAsync();
var dtC= new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd hh:mi:ss:mmm" };
return string.IsNullOrEmpty(c) ? new Transporter<User>() :
                JsonConvert.DeserializeObject<Transporter<User>>(c, dtC);

Transporter是一个json helper,它的类是(短版本):

public class Transporter<T>
{
    public T data;
    private bool success = true;
    public Transporter()
    {
    }
    public bool isSuccess()
    {
        return success;
    }
    public void setSuccess(bool success)
    {
        this.success = success;
    }
    public T getData()
    {
        return data;
    }
    public void setData(T data)
    {
        this.data = data;
    }
}

User类:

[Table("User")]
public class User
{
    [PrimaryKey, AutoIncrement]
    public long Id { get; set; }
    public string Name { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public DateTime CreationDate { get; set; }
}

User的所有属性都直接来自服务器。都填满了

但是当我做反序列化时- JsonConvert.DeserializeObject<Transporter<User>>(c, dtC) -属性LastNamenull,属性CreationDate0001-01-01T00:00:00.0000000Z

编辑:

{"data":{"id":2,"name":"test","last_name":"test 1","email":"test2","password":"aaa","creation_date":"2016-09-20T21:13:22.18"},"success":true}

Newtonsoft.Json不能为一个字符串字段和一个日期时间字段工作

格式yyyy-MM-dd hh:mi:ss:mmm无效,因为它在毫秒部分之前有冒号:。应该是yyyy-MM-dd hh:mi:ss.mmm .