如何迭代列表并从中创建json数组
本文关键字:创建 json 数组 列表 何迭代 迭代 | 更新日期: 2023-09-27 18:25:06
如何迭代列表并创建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];
}
希望这能有所帮助!