我想从web API 2方法中撤消的json结果中删除根xml标记。 这是代码
[HttpGet]
public string Get()
{
var data = context.Languages
.Select
(lang => new
{
id = lang.Language_ID,
title = lang.Name
});
//return JsonConvert.SerializeObject(data, Formatting.Indented);
return new JavaScriptSerializer().Serialize(data);
}
这是结果字符串
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
[{"id":1,"title":"Arabic"},{"id":2,"title":"English"},{"id":3,"title":"French"}]
</string>
答案 0 :(得分:0)
你的方法返回一个字符串,这就是为什么你得到字符串xml标签,试试这个
[HttpGet]
public ActionResult Get()
{
var data = context.Languages
.Select
(lang => new
{
id = lang.Language_ID,
title = lang.Name
});
//return JsonConvert.SerializeObject(data, Formatting.Indented);
return Json(new JavaScriptSerializer().Serialize(data));
}
答案 1 :(得分:0)
我通过创建新类解决了这个问题,并将方法更改为以下代码
[HttpGet]
public IEnumerable<BasicItem> Get()
{
var data = context.Languages
.Select
(lang => new BasicItem
{
id = lang.Language_ID,
title = lang.Name
});
//return JsonConvert.SerializeObject(data, Formatting.Indented);
return data;
}
asp.net会自动序列化它 为了确保返回的结果是json,我将以下代码添加到WebApiConfig
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));