我有一个列表,我想把它转换成JsonArray返回方法JsonResult。我怎么能这么做?
注意:我使用Json。净
尝试。
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);
}
实体[Serializable]
public class CategoriaProduto{
public virtual long id { get; set; }
public virtual String descricao { get; set; }
public virtual Empresa empresa { get; set; }
public CategoriaProduto(){
}
public override string ToString(){
return descricao;
}
}
通过使用JsonConvert.SerializeObject()
和Json()
MVC控制器方法来双重序列化您的结果。您要么需要这样做:
var jsonArray = JsonConvert.SerializeObject(lista, Formatting.Indented);
return Content(jsonArray, "application/json");
或:
return Json(lista);
如果您使用第一种方法,您还需要将控制器方法的返回类型从JsonResult
更改为ContentResult
或ActionResult
。
如果您使用第二种方法,请注意它不使用Json。Net序列化器内部(它实际上使用JavaScriptSerializer
),所以它不会支持任何Json。