ServiceStack.Text and ISODate("")

6

为什么ServiceStack.Text的DeserializeFromString无法转换ISO日期格式。

例如,我有一个JSON字符串:

{ "Count" : 4, "Type" : 1, "Date" : ISODate("2013-04-12T00:00:00Z") }

和类

public class TestClass
{
    public int Count { get; set; }
    public int Type { get; set; }
    public DateTime Date { get; set; }
}

当我尝试从字符串反序列化时

JsonSerializer.DeserializeFromString<TestClass>(json);

给我输出像这样的结果 在这里输入图片描述

1
它可能不希望出现ISODate这个词。尝试使用{ "Count" : 4, "Type" : 1, "Date" : "2013-04-12T00:00:00Z" } - alex
2个回答

19

ServiceStack.Text也能够理解ISO8601格式。

您可以通过以下方式将其配置为默认行为:

JsConfig.DateHandler = JsonDateHandler.ISO8601;

请查看这个答案以获取更多信息。


2
JsonDateHandler已更名为DateHandler。 - Graeme Wicksted

1

JSON期望日期格式如下所示

"LastRequestTime":"\/Date(928129800000+0530)\/"

所以要改变你在Json字符串中的日期值,然后尝试。它将正确地反序列化该属性。

JSON没有日期格式,Ecma 6和5.1有!将ISO8601设置为新的默认标准。 - Remco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接