我有WCF REST服务返回像
这样的JSON响应{
"categories": [{
"category_id": "10",
"name": "Grocery",
"freeQnty":"0",
"prdcost":"100"
}, {
"category_id": "20",
"name": "Beverages",
"freeQnty":"1",
"prdcost":"20"
}]
}
但我想要像服务状态一样回复。
{
"success": true,
"categories": [{
"category_id": "10",
"name": "Grocery",
"freeQnty":"0",
"prdcost":"100"
}, {
"category_id": "20",
"name": "Beverages",
"freeQnty":"1",
"prdcost":"20"
}]
}
这是我的服务。
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "json/GetCustomerDetails/{customerid}")]
Merchant GetCustomerDetails(string customerid);
[DataContract]
public class categories
{
[DataMember]
public int category_id{ get; set; }
[DataMember]
public string name { get; set; }
[DataMember]
public int freeQnty{ get; set; }
[DataMember]
public int prdcost { get; set; }
}
如果需要显示服务成功,如何获得成功状态 "成功":其他明智的 "成功":错误。
答案 0 :(得分:0)
可能的变体:
[OperationContract]
[WebInvoke(
BodyStyle = WebMessageBodyStyle.Bare, //or WrappedRequest
Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/somemethod?param1={param1}¶m2={param2}")]
System.ServiceModel.Channels.Message SomeMethod(string param1, string param2)
{
// use JSON.NET to add missing properties etc:
var jObject = JObject.FromObject(yourObject);
jObject["success"] = true;
var json = jObject.ToString();
WebOperationContext.Current.OutgoingResponse.ContentType = "application/json";
return WebOperationContext.Current.CreateTextResponse(json);
}
答案 1 :(得分:0)
最好更改您的回复合同。 创建一个新的响应类,成员成功和类别如下,并返回
[DataContract]
public class YourResponse
{
[DataMember]
public bool Success { get; set; }
[DataMember]
public categories Categories{ get; set; }
}