2016-05-05 4 views
0

私はオブジェクトのリストを取ってAJAX呼び出しにJsonResultとして返そうとしています。私はこれをしようとしている:List <object>をJsonResultに変換するにはどうすればよいですか?

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

jss.Serializeは、そのオブジェクトをパラメータとして受け取り、これは明らかに動作していないです。オブジェクトのListに渡して返す必要があるものを得る方法はありますか?

+0

[ 'Json'](https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.json(V = vs.118).aspxの)メソッド – Grundy

+0

'jss.Serializeはオブジェクトを引数にとりますので、これは明らかに機能しません。このステートメントは意味をなさない – Jonesopolis

+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

0

MVC ControllerクラスはJsonResultにオブジェクトを変換するために使用されるJson方法を有しています。 JavaScriptSerializerを使用してオブジェクトを手動でシリアル化する必要はありません。オブジェクトをJsonメソッドに渡すだけで、結果が実行されたときにシリアル化されます。コントローラメソッドがGETメソッドである場合は、メソッドの2番目のパラメータとしてJsonRequestBehavior.AllowGetを渡す必要があります。そうでない場合は、エラーが発生します。あなたが使用する必要があります

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