Mar*_*ero 1 datetime json jsonserializer signalr
我通过SignalR从ServerSide发送一个没有未指定类型的DateTime对象:
myDate.Kind //Unspecified
Run Code Online (Sandbox Code Playgroud)
我设置JsonConvert defaultSettings使用UTC,作为建议在这里:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings(){
DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
Run Code Online (Sandbox Code Playgroud)
如果我使用JsonConvert.SerializeObject,我获得UTC ISO8601格式的字符串,后缀为"Z":
JsonConvert.SerializeObject(myDate) // "\"2014-11-27T23:00:00Z\""
Run Code Online (Sandbox Code Playgroud)
但是,如果我通过SignalR发送对象,在客户端我收到:
myDate: "2014-11-27T23:00:00"
Run Code Online (Sandbox Code Playgroud)
注意它返回时没有Z后缀.
SignalR没有使用JsonConvert吗?为什么我得到两个不同的结果?
我的目标是接待客户方:"2014-11-27T23:00:00 Z "
小智 5
SignalR使用GlobalHost对象中注册的JsonSerializer.而不是你在做什么,添加以下内容;
var serializer = new JsonSerializer()
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
Run Code Online (Sandbox Code Playgroud)
不要忘记(如果需要)设置Null处理,引用处理等.
归档时间: |
|
查看次数: |
1296 次 |
最近记录: |