JQuery не может использовать оператор «in» для поиска «length» при использовании ответа Ajax - PullRequest
0 голосов
/ 24 февраля 2019

[{"ContainerNo": "FCIU3554053", "Size": 20, "SealNo": "172003", "Weight": 25209.00}, {"ContainerNo": "TEMU5422909", "Size":20, "SealNo": "164169", "Weight": 25400.00}]

 $.ajax({
       url: "/Popu/GetContainers",
       dataType: "json",
       complete: function (response) {
           var parsedJson = JSON.parse(response.responseText);

           var thead = '', tbody = '';
           //for (var key in parsedJson[0]) {
              // thead += '<th>' + key + '</th>';
           //}
          thead += '<th>ContainerNo</th><th>Size</th><th>SealNo</th><th>Weight</th>';

          $.each(parsedJson, function (i, d) {
             tbody += '<tr><td>' + d.ContainerNo + '</td><td>' + d.Size + '</td><td>' + d.SealNo + '</td><td>' + d.Weight + '</td></tr>';
          });

          callback($('<table style="padding-left:20px;">' + thead + tbody + '</table>')).show();
  }

Я получаю ошибку Uncaught TypeError: Невозможно использовать оператор 'in' для поиска 'length'.Я очень смущен.Я получаю ту же ошибку при выполнении - parsedJson.Count.

1 Ответ

0 голосов
/ 24 февраля 2019

Во-первых, у вас есть Array объектов:

var foo = '[{"ContainerNo":"FCIU3554053","Size":20,"SealNo":"172003","Weight":25209.00},{"ContainerNo":"TEMU5422909","Size":20,"SealNo":"164169","Weight":25400.00}]';

Примечание: string (заключено в одинарные кавычки) для оправдания использования JSON.parse, в противном случае, если ответ уже был Array тогда вам не нужно разбирать.

var parsed = JSON.parse(foo)

// iterate over your array
for(i = 0; i < parsed.length; i ++){
    console.log(`Container No: ${parsed[i].ContainerNo}, Seal No: ${parsed[i].SealNo} `);
}

Вывод:

Container No: FCIU3554053, Seal No: 172003
Container No: TEMU5422909, Seal No: 164169

Если вы хотите использовать Array.forEach:

parsed.forEach( i => console.log(`Container No: ${i.ContainerNo}, Seal No: ${i.SealNo} `));

Выход:

Container No: FCIU3554053, Seal No: 172003 
Container No: TEMU5422909, Seal No: 164169 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...