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)
-属性LastName
是null
,属性CreationDate
是0001-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}
格式yyyy-MM-dd hh:mi:ss:mmm
无效,因为它在毫秒部分之前有冒号:
。应该是yyyy-MM-dd hh:mi:ss.mmm
.