HTTP WCF服务,返回IEnumerable <class>的JSON日期格式问题

时间:2016-07-25 20:13:04

标签: c# json rest wcf http

我有一个Restful WCF Http服务,返回JSON并且工作得很好,除了DateTime没有正确格式化:

e.g。 “AdjudDate”:“ /日期(1349409600000-0400)/

环顾四周后,我在这里发现了一个旧帖子,但我无法使用该代码。它最后一次更新于2011年。是否有更新版本或实施? JSON.NET Serializer for WCF REST Services

这是我的代码,它返回一个IEnumerable。

//除日期外,所有JSON值都很好:

private IEnumerable<Customer> ProcessWcfPost(Customer searchmodel)
{
    return _repository.GetCustomers(searchModel);
}

修改的 我当然也尝试将返回类型更改为字符串而不是IEnumerable:

private string ProcessWcfPost(Customer searchmodel)
    {
        var result = _repository.GetCustomers(searchModel);
        return Newtonsoft.Json.JsonConvert.SerializeObject(result);
    }

但我的JSON不太对劲: [{\ “ClaimProcessId \”:1599986,\ “ClmHdrId \”:1011,\ “ClmLineId \”:1011,\ “ClmAdjId \”:1011,\ “ReceivedDtSur \”:\“2012-12-05T00:00: 00 \“,”“AdjudicationDtSur \”:\“2011-10-05T00:00:00 \”(等等)......

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我找到了可以帮助任何人的解决方案。 此解决方案基于DateTimeKind.Utc,它将返回没有-0400的日期,例如:

Public Function test() As Date

Dim DateFormatted As New DateTime(2017, 07, 04, 8, 18, 42, DateTimeKind.Utc)
return DateFormatted 

End Function

答案 1 :(得分:0)

您可以尝试使用IsoDateTimeConverter

IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";
string strJSON = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented, timeConverter);