编程语言
首页 > 编程语言> > c#-使用servicestack自动查询时的DateTime属性问题

c#-使用servicestack自动查询时的DateTime属性问题

作者:互联网

感谢Mythz提供了如此惊人而强大的框架.但是,我通过使用servicestack自动查询遇到了像这样的“ / Date(1543681261000-0000)/”而不是“ 2019-03-25T12:50:3000”呈现的DateTime属性.我找不到任何相关文档.请帮我.

{
"customer": [
    {
        "transaction_total": 0,
        "text": "0067 83228780",
        "transaction_time": 0,
        "action": 0,
        "point_collection_on_registration": false,
        "id": 71,
        "push_notification_id": "null",
        "name": "0067",
        "ic": "27668",
        "type": 0,
        "phone_no": "83228780",
        "point": 5132,
        "balance": 1621.3,
        "issue_date": "/Date(1543681261000-0000)/",
        "is_subscribed": true,
        "is_expiry": false,
        "lang_preferred": "cn",
        "is_delete": false
    }
],
"count_all": 120

}

解决方法:

默认情况下,ServiceStack使用WCF日期作为JSON,有关different ways to parse WCF Dates in JavaScript,请参见此答案.

您可以选择更改customizing JSON Responses ServiceStack中任何JSON响应的日期在JSON中的序列化方式,例如,您可以使用以下命令更改Auto Query服务返回的JSON:

>?jsconfig = DateHandler:ISO8601
>?jsconfig = DateHandler:ISO8601DateOnly
>?jsconfig = DateHandler:ISO8601DateTime

或使用简写别名表示法:

>?jsconfig = dh:iso8601
>?jsconfig = dh:iso8601do
>?jsconfig = dh:iso8601dt

或者,您可以告诉ServiceStack始终在AppHost.Configure()中使用JSON中的ISO8601日期,方法是:

JsConfig.Init(new Config {
    DateHandler = DateHandler.ISO8601
});

标签:servicestack,c,servicestack-autoquery
来源: https://codeday.me/bug/20191211/2105520.html