JSInterop.Json.Deserialize从DateTime对象丢失了毫秒

时间:2019-04-03 19:45:50

标签: json blazor

在我的Blazor 0.9.0项目中,我有一个很大的json字符串,用于包含DateTime属性(包括毫秒)的对象列表。这通过Ajax传递到我的.cshtml文件,我在字符串上调用Microsoft.JSInterop.Json.Deserialize。除DateTime对象丢失毫秒以外,这可以很好地反序列化。对于JsonConvert,可以使用JsonSerializerSettings DateParseHandling进行纠正。我们如何在Blazor中做到这一点?

var json = "{\"timestamp\":\"2019-03-01T12:22:26.102Z\"}";

我希望将其反序列化为01/03/2019 12:22:26:102,但实际结果为01/03/2019 12:22:26

2 个答案:

答案 0 :(得分:3)

Blazor使用SimpleJson,而不是NewtonSoft。这也会影响Http.GetJsonAsync<T>

我从API返回的一些看上去很普通的Json(randomuser.me是一个例子)上感到不安。

我刚刚添加了NewtonSoft软件包,并使用HttpClient将结果下载为字符串。

答案 1 :(得分:0)

很遗憾,解决方案必须创建Date字段的字符串表示形式,以保持反序列化后的毫秒数。如果出于某种原因在Blazor中实现,NewtonSoft 12.01和JSInterop当前都不会保留毫秒。