如何将List <object>转换为JsonResult?

时间:2016-05-05 16:34:08

标签: javascript c# json asp.net-mvc jsonresult

我尝试获取对象列表并将其作为JsonResult返回给AJAX调用。我试过这个:

List<object> list = getList();
JavaScriptSerializer jss = new JavaScriptSerializer();
JsonResult json = jss.Serialize(list);

jss.Serialize将一个对象作为其参数,因此这显然不起作用。有没有办法可以传入一个对象列表并获得我需要的东西?

2 个答案:

答案 0 :(得分:0)

以下示例显示如何返回的实例 来自动作方法的JsonResult类。返回的对象 指定允许GET请求。

 public ActionResult Movies()
 {
     var movies = new List<object>();

     movies.Add(new { Title = "Ghostbusters", Genre = "Comedy", Year = 1984 );
     movies.Add(new { Title = "Gone with Wind", Genre = "Drama", Year = 1939 );
     movies.Add(new { Title = "Star Wars", Genre = "Science Fiction", Year = 1977 });

     return Json(movies, JsonRequestBehavior.AllowGet);
 }

来源:https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx

答案 1 :(得分:0)

MVC Controller类有一个Json方法,用于将对象转换为JsonResult。您无需使用JavaScriptSerializer手动序列化对象。只需将对象传递给Json方法,它就会在执行结果时为您序列化。如果您的控制器方法是GET方法,那么您还需要将JsonRequestBehavior.AllowGet作为Json方法的第二个参数传递,否则会引发错误。

[HttpGet]
public ActionResult GetMyList()
{
    List<object> list = getList();
    return Json(list, JsonRequestBehavior.AllowGet);
}