如何迭代列表并创建一个Json数组以从我的控制器发回?
欢迎使用伪代码!
答案 0 :(得分: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) {
}
});
答案 1 :(得分: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);
然后在您的网页中使用javscript
var jsArray = eval('(' + '<%=request.getAttribute("jsonarray")%>' + ')');
您现在可以在javascript中迭代它:
for(var i=0;i<jsArray.length;i++)
{
var getName = jsArray[i];
}
希望这有帮助!