#c# #javascript #jquery #ajax #arrays
#c# #javascript #jquery #ajax #массивы
Вопрос:
У меня есть метод page, который возвращает список целых чисел с использованием 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
});
Но в моем случае он печатает каждый символ, а не каждое число.
Вот метод page, если кому-то интересно
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);
Комментарии:
1. Почему бы вам просто не сделать это на сервере в первую очередь? Кажется, логичное место для этого.
2. @epascarello: В прошлый раз, когда я проверял,
List<int>
был массив целых чисел.
Ответ №1:
Вы должны десериализовать массив 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
Комментарии:
1. Является ли JSON.parse теперь частью jQuery?
Ответ №2:
- Почему бы вам просто не вернуть JSON-объект с сервера.
- Установите тип содержимого в application / json.
- С помощью вызова jQuery Ajax задайте тип данных в json.
И jQuery все проанализирует за вас. Все, что вам нужно будет сделать, это data.yourArrayName, чтобы получить данные.
Ответ №3:
Я думаю, что если вы установите тип данных: json, он будет анализировать ответ как json.