Changing JSON response root node message in WCF
I created a REST GetTime Service in WCF and the service returns JSON开发者_Go百科 as the response message. Also the WebMessageBodyStyle is set to wrapped so it would have an ID associated with that data it returns. But when I use Fiddler to test my service the response string is:
{"GetTimeResult":"2010614104013"}
As the response above the ID of the string is GetTimeResult, I'm wondering is there any way on changing that bit of test to timestamp. So it looks like this:
{"timestamp":"2010614104013"}
Cheers.
If you are using the DataContract/DataMember attributes in your code, you add a name (as well as some other named parameters).
[DataMember(Name = "timestamp")]
public string GetTimeResult
As pointed out in this article, suppose you are not using a data member explicitly in a data contract and want to return, say, a timestamp as a simple string for the response. Just use the annotation [return: MessageParameter(Name = "timestamp")]
with your operation contract method:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/timestamps", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
[return: MessageParameter(Name = "timestamp")]
string GetStringTimestamp();
精彩评论