Как извлечь строковый ключ и значение из объекта JSON - PullRequest
4 голосов
/ 12 марта 2010

в моем коде jquery я сделал ajax-запрос и сервер вернул данные в формате JSON следующим образом:

{"list":{
    "category":"book",
    "item":[
          {"title":"jQuery Cookbook","author":"Tom","publisher":"Wonderland"}, 
          {"title":"PHP Cookbook","author":"Jack London","publisher":"O'Reilly"}
           ]
         }
}

в моем коде jquery, у меня есть:

 $.getJSON(
        "data/getFile.php",
        {set:setName, list:listName},
        function(json) {
            var items = json.list.item;
            $.each(items, function(key, value) {alert(value);}
        });

оказалось значение объекта, который является правильным. У меня вопрос, как я могу разобрать как имя, так и значение, например: для элемента 1: ключ = "заголовок", значение = "jQuery Cookbook"; key = "author", value = "Tom"; ...

причина, по которой мне нужно это сделать, заключается в том, что элемент будет обновляться динамически, возможно, позже пользователь добавит больше атрибута ключ / значение, например: {"isbn": "11223344"}

Спасибо.

Ответы [ 3 ]

2 голосов
/ 12 марта 2010

Вы можете перебирать элементы с помощью цикла for следующим образом:

for (var key in items) {
  if(items.hasOwnProperty(key)) { //Exclude inherited prototype properties
    alert("Key: " + key);
    alert("Value: " + items[key]);
  }
}

Я не уверен точно в вашем месте назначения данных, но это самый простой способ получить ключ / значение длякаждая пара.

1 голос
/ 12 марта 2010

получил, просто нужно использовать двойной цикл:

$. GetJSON ( "Данные / getFile.php", {set: setName, list: listName}, function (json) { var items = json.list.item; $ .each (items, function (i, item) {

           $.each(item, function(key, val) {
              alert(key + ': ' + val);      

           });  

        }
    });
0 голосов
/ 30 января 2013

вы также можете использовать подчеркивание lib для каждой пары значений ключей объекта JSON

_.each({one : 1, two : 2, three : 3}, function(value, key ){
    alert("key : "+ key+" value: "+ value);
});

документация на http://underscorejs.org/#each

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