Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Перебор объекта JSON в jquery

Автор вопроса: GautamОтветов: 4

У меня есть объект json как

[
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"},
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"False"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"True"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"False"}
]

Мне нужно создать 2 выпадающих списка из этого объекта как

Ответ номер 1 -> Верно/Неверно

Ответ номер 2 -> Верно/Неверно

выпадающую часть я сделаю сам. Я просто запутался в том, как перебирать этот объект. Может ли кто-нибудь привести мне пример?

  • вы пропустили запятую после второго элемента? leonhart 19.06.2013
  • Вы не можете изменить структуру JSON? Это кажется ужасным способом представления информации, которую вы хотите. Anthony Grist 19.06.2013

jqueryeach

Ответы

Ответ 1 · рейтинг 29 · TCHdvlp

ваши объекты json jsonObject хранятся в массиве. Делать :

$.each(jsonArray, function(index,jsonObject){
    $.each(jsonObject, function(key,val){
        console.log("key : "+key+" ; value : "+val);
    });
});

это даст вам

key : DisplayName ; value : Answer Number 1
key : Value ; value : Answer 1
key : Option ; value : true

В любом случае Антон прав. Вашей структурой будет трудно манипулировать

Ответ 2 · рейтинг 3 · LMeyer

Ваш JSON недействителен. Что насчет этого :

var json = '[
    {"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"},
    {"DisplayName":"Answer Number 1","Value":"Answer1","Option":"False"},
    {"DisplayName":"Answer Number 2","Value":"Answer2","Option":"True"},
    {"DisplayName":"Answer Number 2","Value":"Answer2","Option":"False"}
]';
var jsonObject = $.parseJSON(json); //Only if not already an object
$.each(jsonObject, function (i, obj) {
    alert(obj.DisplayName);
});

Скрипт

Ответ 3 · рейтинг 1 · Petr Vostrel

Используйте jQuery.each()

$.each( yourArrayOfObjects, function( index, object ){
  // do your magic here
});

Ответ 4 · Atif

var json = [{
    "DisplayName": "Answer Number 1",
        "Value": "Answer1",
        "Option": "True"
}, {
    "DisplayName": "Answer Number 1",
        "Value": "Answer1",
        "Option": "False"
}, {
    "DisplayName": "Answer Number 2",
        "Value": "Answer2",
        "Option": "True"
}, {
    "DisplayName": "Answer Number 2",
        "Value": "Answer2",
        "Option": "False"
}];

Повторить

    for (i in json) {
//json[i] is your current object inside the array, {"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"}
        for (key in json[i]) {
// keys are DisplayName,  Value, Option
            alert(key);
            alert(json[i][key]); // instead of writing object.key you can also write object[key]
        }
    }

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы