2012-02-20 16 views

答えて

4
public ActionResult Foo() 
{ 
    var list = new List<string>(); 
    list.Add("foo"); 
    list.Add("bar"); 

    return Json(list, JsonRequestBehavior.AllowGet); 
} 

とクライアント上:

$.getJSON('@Url.Action("Foo")', function(list) { 
    for (var i = 0; i < list.length; i++) { 
     alert(list[i]); 
    } 
}); 

そして、あなたが入力として、あなたのコントローラのアクションに配列を送信する場合:

public ActionResult Foo(string[] foos) 
{ 
    ... 
} 

次の操作を行うことができます:

var array = []; 
array.push('foo'); 
array.push('bar'); 
$.ajax({ 
    url: '@Url.Action("foo")', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ foos: array }), 
    success: function(result) { 

    } 
}); 
0
JSONArray array = new JSONArray(); 
JSONObject object = new JSONObject(); 

for(int i=0;i<size;i++) 
{ 
//To create an array of objects 
String name = <get name from your list> 
object.put(key name, key value);  // example: object.put("name","whatever string you want"); 

//To create an array of arrays 
JSONArray subarray = new JSONArray(); 
subarray.add(name); 

//Put your object or subarray into the main JSONArray 
array.add(object); 
// OR 
array.add(subarray); 
} 

今、そうのようなあなたのコントローラから自分のウェブページにあなたのJSONArrayを送る:

  request.setAttribute("jsonarray",array); 
     RequestDispatcher rd = request.getRequestDispatcher("main.jsp"); 
     rd.forward(request, response); 

、その後、あなたは今、JavaScriptでそれを反復処理することができ、あなたのWebページに

var jsArray = eval('(' + '<%=request.getAttribute("jsonarray")%>' + ')'); 

をjavscript使用:

for(var i=0;i<jsArray.length;i++) 
{ 
    var getName = jsArray[i]; 
} 

これが役に立った!

関連する問題