Как перебрать список и создать из него массив json? - PullRequest
1 голос
/ 20 февраля 2012

Как я могу перебрать список и создать массив Json для отправки обратно с моего контроллера?

Псевдокод приветствуется!

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012
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 голосов
/ 20 февраля 2012
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];
}

Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...