【问题标题】:how to change JSON response format如何更改 JSON 响应格式
【发布时间】:2015-07-28 11:32:18
【问题描述】:

这是一个以 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 框架 4.5

谢谢

【问题讨论】:

标签: json wcf


【解决方案1】:

你可以使用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 数组写在方括号内。我需要改变什么吗?方法何时返回 JSON 数组?
  • 只要将 BodyStyle 设置为 WrappedResponse,最终结果将是一个具有单个属性的对象(然后可以是一个数组)。在这种情况下,它不会改变任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
相关资源
最近更新 更多