如何更改 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);
这是一个以 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);