在WCF中更改JSON响应根节点消息

时间:2010-06-14 10:04:32

标签: wcf json web-services wcf-rest

我在WCF中创建了一个REST GetTime服务,该服务返回JSON作为响应消息。此外,WebMessageBodyStyle被设置为包装,因此它将具有与其返回的数据相关联的ID。但是当我使用Fiddler来测试我的服务时,响应字符串是:

{"GetTimeResult":"2010614104013"}

由于字符串ID以上的响应是GetTimeResult,我想知道是否有任何方法可以将测试位更改为时间戳。所以它看起来像这样:

{"timestamp":"2010614104013"}

干杯。

2 个答案:

答案 0 :(得分:0)

如果您在代码中使用DataContract / DataMember属性,则添加名称(以及一些其他命名参数)。

[DataMember(Name = "timestamp")]
public string GetTimeResult

答案 1 :(得分:0)

正如this文章中指出的,假设您没有在数据协定中显式使用数据成员,而是想将时间戳记作为响应的简单字符串返回。只需将注释[return: MessageParameter(Name = "timestamp")]与您的操作合同方法一起使用:

[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/timestamps", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
[return: MessageParameter(Name = "timestamp")]
string GetStringTimestamp();