Asp.net mvc 4 如何转换IList<;对象>;去JsonArray?
我有一个IList,我想将其转换为JsonArray,以在方法JsonResult中返回。我怎么能这样做 注意:我使用的是Json.NET 努力Asp.net mvc 4 如何转换IList<;对象>;去JsonArray?,asp.net-mvc-4,json.net,Asp.net Mvc 4,Json.net,我有一个IList,我想将其转换为JsonArray,以在方法JsonResult中返回。我怎么能这样做 注意:我使用的是Json.NET 努力 public JsonResult findByCriterio(String criterio){ Empresa empresa = getEmpresa(); IList<CategoriaProduto> lista = new List<CategoriaProduto>
public JsonResult findByCriterio(String criterio){
Empresa empresa = getEmpresa();
IList<CategoriaProduto> lista = new List<CategoriaProduto>();
if (criterio.Length >= 5){
lista = dao.findByCriterio(criterio, empresa);
}else{
lista = dao.findAll(empresa);
}
var jsonArray = JsonConvert.SerializeObject(lista, Formatting.Indented);
return Json(jsonArray);
}
通过使用
JsonConvert.SerializeObject()
和Json()
MVC控制器方法,您正在双重序列化结果。您需要这样做:
var jsonArray = JsonConvert.SerializeObject(lista, Formatting.Indented);
return Content(jsonArray, "application/json");
或者这个:
return Json(lista);
如果使用第一种方法,还需要将控制器方法的返回类型从JsonResult
更改为ContentResult
或ActionResult
如果使用第二种方法,请注意它在内部没有使用Json.Net序列化程序(它实际使用),因此它不会支持您可能使用的任何Json.Net设置或属性。您使用
JsonConvert.SerializeObject()
和Json()
MVC控制器方法双重序列化结果。您需要这样做:
var jsonArray = JsonConvert.SerializeObject(lista, Formatting.Indented);
return Content(jsonArray, "application/json");
或者这个:
return Json(lista);
如果使用第一种方法,还需要将控制器方法的返回类型从JsonResult
更改为ContentResult
或ActionResult
如果您使用第二种方法,请注意它在内部不使用Json.Net序列化程序(它实际使用),因此它不会接受您可能使用的任何Json.Net设置或属性