Json Цикл массива - PullRequest
       4

Json Цикл массива

0 голосов
/ 27 января 2020

Я работаю в asp. net visual studio. Я вызываю веб-метод, используя jquery. В asp. net я создаю динамическую c таблицу данных. Я возвращаю JsonConvert.SerializeObject(dt);

$.ajax({
    type: 'POST',
    url: 'Default.aspx/GetCustomers',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function (result) {

        console.log((result.d));
        cars = result.d;
        $.each(cars, function (index, key) {

            console.log(index);
            console.log(key);

        })

    }
});

Это json, возвращаемое из asp. net

[{"Name":"Jones","January 2019":53.0000,"February 2019":33.0000,"March 2019":55.0000 }]

При прохождении через него oop $ .each я получаю сообщение об ошибке

SCRIPT5007: SCRIPT5007: недопустимый операнд 'in': ожидается объект

Как получить доступ к ключу и значениям?

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Другой подход заключается в использовании Object.Keys, как показано ниже:

var cars = [
	{
		"Name": "Jones",
		"January 2019": 53.0000,
		"February 2019": 33.0000,
		"March 2019": 55.0000
	}
];

$.each(cars,
	function(index, dict) {

		console.log(index);
		console.log(dict);

		Object.keys(dict)
			.forEach(function eachKey(key) { // or .forEach(function (key) { 
				console.log(key + ': ' + dict[key]); 
			});

	});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 27 января 2020

Цикл по этому JSON:

const cars = [{
  "Name": "Jones",
  "January 2019": 53.0000,
  "February 2019": 33.0000,
  "March 2019": 55.0000
}]

// jQuery
$.each(cars, function(index, key) {
  const car = Object.entries(key)
  console.log('$.each()')
  $.each(car, function(i, el) {
    console.log('key:', el[0])
    console.log('val:', el[1])
  })
})

// JavaScript
cars.forEach(e => {
  console.log('forEach()')
  for (let [key, val] of Object.entries(e)) {
    console.log(`key: ${key}`)
    console.log(`val: ${val}`)
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Я думаю, что ключ Object.entries () .

Подробнее о Object.entries ( ) : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

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