C# 用xml包装的.net web api响应json
我创建了一个WebAPI项目,并进行了一个简单的查询。然后我将数据转换为json并返回数据。 问题在于数据被以下方式包装:C# 用xml包装的.net web api响应json,c#,asp.net,json,asp.net-web-api,C#,Asp.net,Json,Asp.net Web Api,我创建了一个WebAPI项目,并进行了一个简单的查询。然后我将数据转换为json并返回数据。 问题在于数据被以下方式包装: <string xmls="http/.../"> {json data} </string> 我带着电话线回来 return Ok(jsonData); 我只需要json不被html标记包装,而是仍然使用IHttpActionResult。好的,显然当您返回ok时,输入的数据会自动解析为xml格式,返回响应时只需使用内容而不是ok 谢谢你的帮助
<string xmls="http/.../"> {json data} </string>
我带着电话线回来
return Ok(jsonData);
我只需要json不被html标记包装,而是仍然使用IHttpActionResult。好的,显然当您返回ok时,输入的数据会自动解析为xml格式,返回响应时只需使用内容而不是ok
谢谢你的帮助 我唯一缺少的是响应标题仍然包含内容类型:text/html。为什么这是个问题?因为我使用了J-SON Formatter Chrome扩展,它检查内容类型,我没有得到我习惯的漂亮格式。我使用一个简单的自定义格式化程序修复了这个问题,该格式化程序接受文本/html请求并返回应用程序/j-son响应:
public class JsonFormatter : JsonMediaTypeFormatter
{
public JsonFormatter() {
this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
this.SerializerSettings.Formatting = Formatting.Indented;
}
public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType)
{
base.SetDefaultContentHeaders(type, headers, mediaType);
headers.ContentType = new MediaTypeHeaderValue("application/json");
}
}
然后使用以下代码:
config.Formatters.Add(new JsonFormatter());
您如何查询您的服务?第二,您是否确保将http查询的contentType或accept(不记得应该设置哪个)属性设置为jsonNo。。您需要在哪里设置它?我使用数据读取器进行查询,然后序列化数据并将其转换为json。看看有什么具体原因吗?成功了,谢谢!,将返回行更改为“内容”,而不是“确定”
config.Formatters.Add(new JsonFormatter());