В JavaScript / jQuery, как получить данные, в имени которых есть пробелы? - PullRequest
11 голосов
/ 08 декабря 2009

Я получаю JSON с помощью вызова jQuery getJSON.

Моя проблема в том, что в некоторых полях возвращаемого JSON есть пробелы.

Как получить эти значения из JSON без изменения исходных данных? См. Строку с пометкой «ОШИБКА» ниже:

$.getJSON(url, null, function(objData) {
  $.each(objData.data, function(i, item) {
    var zip = item.Zip;
    var fname = item.First Name; //ERROR
  });
});

Пример JSON:

jsonp123456789({"data":[{"Zip":"12345","First Name":"Bob"},{"Zip":"23456","First Name":"Joe"},{"Zip":"34567","First Name":"Bill"}]})

Спасибо

Ответы [ 2 ]

19 голосов
/ 08 декабря 2009

Нотация доступа к элементам массива также работает на объектах.

$.getJSON(url, null, function(objData) {
  $.each(objData.data, function(i, item) {
    var zip = item.Zip;
    var fname = item['First Name'];
  });
});

Вы можете использовать это для произвольных строк (тех, которые не являются допустимыми идентификаторами), а также переменных.

var fieldName = "First Name";
var fname = item[fieldName];
8 голосов
/ 08 декабря 2009
$.getJSON(url, null, function(objData) {
  $.each(objData.data, function(i, item) {
    var zip = item.Zip;
    var fname = item["First Name"]; //Changed this
  });
});

ссылка на элемент, использующая в качестве ключа вместо точечной записи

...