C# 用xml包装的.net web api响应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 谢谢你的帮助

我创建了一个WebAPI项目,并进行了一个简单的查询。然后我将数据转换为json并返回数据。 问题在于数据被以下方式包装:

<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());