如何将 List<object> 转换为 JsonResult?
How do I convert a List<object> to a JsonResult?
我正在尝试获取一个对象列表,并将它们 return 作为 JsonResult
到 AJAX 调用。我正在尝试这个:
List<object> list = getList();
JavaScriptSerializer jss = new JavaScriptSerializer();
JsonResult json = jss.Serialize(list);
jss.Serialize
以一个对象作为它的参数,所以这显然是行不通的。有没有一种方法可以让我只传递一个对象列表并获得我需要的东西 returned?
以下示例显示如何 return
JsonResult
class 来自操作方法。 return编辑的对象
指定允许 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
MVC Controller
class 有一个 Json
方法,用于将对象转换为 JsonResult
。您不需要使用 JavaScriptSerializer
手动序列化对象。只需将对象传递给 Json
方法,它会在执行结果时为您序列化。如果你的控制器方法是GET
方法,那么你还需要将JsonRequestBehavior.AllowGet
作为Json
方法的第二个参数传递,否则会抛出错误。
[HttpGet]
public ActionResult GetMyList()
{
List<object> list = getList();
return Json(list, JsonRequestBehavior.AllowGet);
}
我正在尝试获取一个对象列表,并将它们 return 作为 JsonResult
到 AJAX 调用。我正在尝试这个:
List<object> list = getList();
JavaScriptSerializer jss = new JavaScriptSerializer();
JsonResult json = jss.Serialize(list);
jss.Serialize
以一个对象作为它的参数,所以这显然是行不通的。有没有一种方法可以让我只传递一个对象列表并获得我需要的东西 returned?
以下示例显示如何 return
JsonResult
class 来自操作方法。 return编辑的对象
指定允许 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
MVC Controller
class 有一个 Json
方法,用于将对象转换为 JsonResult
。您不需要使用 JavaScriptSerializer
手动序列化对象。只需将对象传递给 Json
方法,它会在执行结果时为您序列化。如果你的控制器方法是GET
方法,那么你还需要将JsonRequestBehavior.AllowGet
作为Json
方法的第二个参数传递,否则会抛出错误。
[HttpGet]
public ActionResult GetMyList()
{
List<object> list = getList();
return Json(list, JsonRequestBehavior.AllowGet);
}