使用Servicestack自动查询时的DateTime属性问题

时间:2019-03-26 02:47:17

标签: c# servicestack servicestack-autoquery

感谢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

}

1 个答案:

答案 0 :(得分:2)

默认情况下,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
});