Разбор JSON с JQuery - PullRequest
       3

Разбор JSON с JQuery

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

Итак, у меня есть объект json

var json = {"School":{"Keywords":"HBS","SchoolName":"","SchoolUrl":"/Careers/Apply/University_recruiting/Schools/HBS.aspx"}, "School":{"Keywords":"Stanford","SchoolName":"","SchoolUrl":"/Careers/Apply/University_recruiting/Schools/Stanford.aspx"}}

И я хочу пройтись по нему, чтобы найти все ключевые слова в этом объекте. Я пробовал $(json.School).each(function(){ console.log(this.Keywords) }, но, похоже, это не работает. Любые подсказки?

Ответы [ 4 ]

1 голос
/ 07 июня 2011

Ваш объект json является вложенным словарным массивом.Присвойте его элементам строки, например:

$.each(json['School'], function() {...
0 голосов
/ 07 июня 2011

Во-первых, json - ужасное имя переменной.JSON там недействителен.Первый {должен быть [, а последний} должен быть].Вам, вероятно, следует просто отказаться от этого избыточного свойства "Школа".

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

Вы должны использовать для ... в

for (key in json){
    if (json.hasOwnProperty(key)) {
        alert(json[key]);
    }
}

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

РЕДАКТИРОВАТЬ - это способ перебора свойств объекта, но я не знаю, является ли ваш допустимый объект

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

$.each используется с массивами. То, что у вас есть, не является массивом. Это простой объект JavaScript со свойствами. Вот как массив будет выглядеть в JavaScript:

var json = [
    {
        "Keywords":"HBS",
        "SchoolName":"",
        "SchoolUrl":"/Careers/Apply/University_recruiting/Schools/HBS.aspx"
    }, 
    {
        "Keywords":"Stanford",
        "SchoolName":"",
        "SchoolUrl":"/Careers/Apply/University_recruiting/Schools/Stanford.aspx"
    }
];

Теперь вы можете цикл:

$.each(json, function() {
    console.log(this.Keywords);
});

А вот работающая живая демонстрация .

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