2016-11-15 52 views
-1

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

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

函数的定义是:

public IHttpActionResult GetAllObjects(); 

,我和线

return Ok(jsonData); 

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

+1

?其次,你是否确定将http查询的contentType或accept(不记得应该设置哪一个)属性设置为json –

+0

否..你需要在哪里设置它?我使用数据阅读器进行查询,然后序列化数据并将其转换为json。 –

+0

看看[这个](http://stackoverflow.com/questions/22681925/webapi-force-action-to-return-xml) –

回答

0

好的,当您返回ok时,您输入的数据会自动分析为xml格式,只需在返回响应时使用内容而不是正常。

感谢您的帮助!

1

对我来说唯一缺失的部分是响应标头仍包含content-type:text/html。为什么这是一个问题?因为我使用J-SON格式化Chrome扩展程序,它检查内容类型,并且我没有得到我习惯的漂亮格式。我固定的,与接受text/html的请求,并返回应用程序/ J-儿子回应一个简单的自定义格式:

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