我正在使用以JSON格式响应的WCF RESTfull服务,但默认情况下,WCF服务发送的格式不是JSON消息(我的意思是没有制表的json对象)。
默认情况下,WCF发送JSON:
{"ResponseBody":{"Code":"0011","InvocationTime":278,"Message":""},"ResponseInformation":{"ServiceCode":0,"ServiceMessage":"Successfull","ServiceInvocationTime":0}}
但我需要这个:
{
"ResponseBody": {
"Code": "0011",
"InvocationTime": 278,
"Message": ""
},
"ResponseInformation": {
"ServiceCode": 0,
"ServiceMessage": "Successfull",
"ServiceInvocationTime": 0
}
有人知道这个简单问题的解决方案吗?谢谢!
答案 0 :(得分:2)
您可以使用Json.NET。添加对库的引用(也可以作为NuGet包提供)并添加
using Newtonsoft.Json;
到您的班级文件。然后,执行以下操作:
var json = "{\"ResponseBody\":{\"Code\":\"0011\",\"InvocationTime\":278,\"Message\":\"\"},\"ResponseInformation\":{\"ServiceCode\":0,\"ServiceMessage\":\"Successfull\",\"ServiceInvocationTime\":0}}";
var formattedJson = JsonConvert.DeserializeObject(json).ToString();
答案 1 :(得分:0)
通常wcf以xml格式响应。如果你在json中指定响应,它将以jason格式给出结果。例如xml格式的请求和json格式的响应。
[OperationContract]
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetAllcustomer")]
List< CustomerResponse> GetAllCustomerDetails();