我创建了一个web api项目并进行了简单的查询。然后我将数据转换为json并返回数据。 问题是数据包裹在:
<string xmls="http/.../"> {json data} </string>
该函数的定义是:
public IHttpActionResult GetAllObjects();
然后我带着
行返回return Ok(jsonData);
我所需要的只是让json不被html标签包裹但仍然使用IHttpActionResult。
答案 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。
感谢您的帮助!