Разобрать строку массива для объекта массива в Javascript - PullRequest
2 голосов
/ 03 мая 2011

У меня есть метод страницы, который возвращает список целых чисел, используя jQuery.ajax();.

$.ajax({
    type: "POST",
    url: url,
    success: function (response) {
        console.log(typeof (response.d));
        console.log(response.d);
    }
});

Это результат в консоли

string
[1767,3071,2744,1256,657,3374,3318,2518,3910,4107,2579,2997,1182,1260,32,3185,873,1374,35,858,3126,1911,3887,3053,298,3150,4222,2692,1397,707,3958,947,1315,4379,2265,2845,3123,3857,1140,1608,2317,2512,3280,1842,1930,4334,878,1366,522,1231]

Я бы хотел избежать обрезки квадратных скобок и использования split для заполнения массива.

Все, что я хочу, это иметь возможность запустить

$.each(response.d, function() {
    console.log(this); // print each number in the array
});

Но в моем случае он печатает каждый символ, а не каждое число.

Вот метод страницы, если кому-то интересно

Random rnd = new Random();
List<int> numbers = new List<int>();
for(int i=0; i<50; i++) {
    numbers.Add(rnd.Next(1000));
}


JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(numbers);

Ответы [ 3 ]

5 голосов
/ 03 мая 2011

Вы должны десериализовать массив javascript в реальный объект javascript.

var responseArray = JSON.parse( result.d )
//responseObject is now a literal javascript array, so you can iterate over it as you would any other array

Вот реализация JSON.parse

1 голос
/ 03 мая 2011
  • Почему бы вам просто не вернуть объект JSON с сервера.
  • Установите тип содержимого для application / json.
  • С помощью вызова jQuery Ajax установите для dataType значение json.

И jQuery проанализирует все за вас.Все, что вам нужно сделать, это data.yourArrayName, чтобы получить данные.

0 голосов
/ 03 мая 2011

Я думаю, что если вы установите dataType: json, он будет анализировать ответ как json.

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