如何将IList<Object>转换为JsonArray?



我有一个列表,我想把它转换成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更改为ContentResultActionResult

如果您使用第二种方法,请注意它不使用Json。Net序列化器内部(它实际上使用JavaScriptSerializer),所以它不会支持任何Json。

相关内容

  • 没有找到相关文章

最新更新