如何迭代列表并从中创建json数组

本文关键字:创建 json 数组 列表 何迭代 迭代 | 更新日期: 2023-09-27 18:25:06

如何迭代列表并创建Json数组以从控制器发回?

欢迎使用伪代码!

如何迭代列表并从中创建json数组

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) {
    }
});
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];
}

希望这能有所帮助!