如何更改 JSON 响应格式

how to change JSON response format

这是一个以 JSON 格式发送响应的 WCF 方法。

[OperationContract(Name = "Employee")]
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedResponse, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "person/{name}")]
Person GetPersonData(string name);

这是我得到的格式:

{"EmployeeResult":{"Age":31,"Name":"testuser"}}

我需要如下内容:

{"Employee":{"Age":31,"Name":"testuser"}}

我试着改变

BodyStyle = WebMessageBodyStyle.Bare

但低于格式:

{"Age":31,"Name":"testuser"}

还有什么我需要改变的吗?我正在研究 .net Framework 4.5

谢谢

您可以使用 MessageParameterAttribute:

[OperationContract(Name = "Employee")]
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedResponse, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "person/{name}")]
[return:MessageParameter(Name = "Employee")]
Person GetPersonData(string name);