.net web api reponse json包装在xml中

时间:2016-11-15 11:54:41

标签: c# asp.net json asp.net-web-api

我创建了一个web api项目并进行了简单的查询。然后我将数据转换为json并返回数据。 问题是数据包裹在:

<string xmls="http/.../"> {json data} </string>

该函数的定义是:

public IHttpActionResult GetAllObjects();

然后我带着

行返回
return Ok(jsonData);

我所需要的只是让json不被html标签包裹但仍然使用IHttpActionResult。

2 个答案:

答案 0 :(得分:1)

对我来说唯一缺少的是响应头仍包含content-type:text / html。为什么这是一个问题?因为我使用的是J-SON Formatter Chrome扩展程序,它会检查内容类型,但我还没有获得我以前的漂亮格式。我用一个简单的自定义Formatter来修复它,它接受text / html请求并返回application / 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());

答案 1 :(得分:0)

好的,显然当你输入ok时,你输入的数据会被自动解析为xml格式,只需在返回响应时使用内容而不是ok。

感谢您的帮助!