Чтение JSON с помощью JQuery: имена полей - PullRequest
1 голос
/ 22 июня 2011

У меня есть полезная нагрузка json, как показано ниже;

{ "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" }

Как видите, в нем будут все страны. Я могу прочитать полезную нагрузку JSON, как указано здесь;

http://webhole.net/2009/11/28/how-to-read-json-with-javascript/

Одна проблема здесь в том, как я собираюсь читать здесь коды стран? Они будут меняться для каждого значения.

Моя цель состоит в том, чтобы назначить код страны для значения свойства свойства и название страны для текста опции в списке выбора.

Ответы [ 4 ]

7 голосов
/ 22 июня 2011

Нет необходимости в jQuery. Добрый старый простой javascript на помощь:

var countries = { "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" };

for(code in countries){
    alert("code: " + code + "\n" + "country: " + countries[code]);
}

Скрипка: http://jsfiddle.net/maniator/2adKZ/

2 голосов
/ 28 июня 2013

Когда JQuery использует каждую функцию, индекс составляется из имени первого бита информации Так в {"ABW": "Аруба", "AFG": "Афганистан", "AGO": "Ангола"} Индекс для первого объекта будет «ABW», а значение «Аруба»

var countries = { "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" }
$.each( countries , function(index) {
    var code = index;
    var country = countries[index] 
})

или

$.each( countries , function(index) {
    var code = index;
    var country = this;
})
0 голосов
/ 22 июня 2011

Почему бы просто не сделать его массивом объектов, а затем перебрать каждый из них?

{"results" : [
     {countryCode : "ABW",
      country : "Aruba"},
     {countryCode : "AFG",
      country : "Afghanistan"}]

Затем перебрать каждый объект в вашем массиве, чтобы получить код страны и название страны.

0 голосов
/ 22 июня 2011

Можете ли вы изменить структуру ответа?до (возможно):

{"countries":[{"code":"ABW","name":"Aruba"},{"code:"AFG","name":"Afghanistan"}]}

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