Получение имен высокоуровневых массивов JSON с помощью jQuery / JS - PullRequest
0 голосов
/ 15 декабря 2009

Я работаю с данными JSON с несколькими наборами пар ключ-значение - каждый набор представляет собой список. В приведенном ниже упрощенном примере имя списка заранее неизвестно - на самом деле мне нужно заполнить выпадающий список на странице именами каждого списка. Как мне получить набор имен в этой ситуации?

({
 "list1": 
 [{
     "prodRating": "5",
     "prodReviews": "21"
 },
        {
     "prodRating": "5",
     "prodReviews": "21"
 }],
 "list2": 
 [{
     "prodRating": "5",
     "prodReviews": "21"
 },
        {
     "prodRating": "5",
     "prodReviews": "21"
 }]
})

Ответы [ 2 ]

0 голосов
/ 15 декабря 2009

Пары ключей JSON, которые вы показываете здесь, похожи на Map со списком ссылок на объекты JSON по ключу, listX. Вы можете повторить их со значением ключа:

var test = {"list1": 
                 [{
                     "prodRating": "5",
                     "prodReviews": "21"
                 },
                        {
                     "prodRating": "5",
                     "prodReviews": "21"
                 }],
                 "list2": 
                 [{
                     "prodRating": "5",
                     "prodReviews": "21"
                 },
                        {
                     "prodRating": "5",
                     "prodReviews": "21"
                 }]
                };
    for (var i in test){
        console.log("Key: "+ i); 
        for(var j in test[i]){
            var something = test[i][j]; 
            console.log("Rating: " + something.prodRating + " Reviews: " + something.prodReviews); 
        }
    }

Не уверен, как вы хотите макет вашего раскрывающегося списка. Но вы можете использовать jquery html () для генерации html. Надеюсь, поможет.

0 голосов
/ 15 декабря 2009
var json = ... //something which gets you the json data
for (var listname in json)
    alert(listname)

В этом случае будут отображаться два оповещения: «list1» и «list2».

Вот небольшая примерная страница, которая перебирает объект, который построен как ваш, но «метки» не должны быть известны.

И создает два выбора динамически

http://jsbin.com/azeha

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