如何从JSON获取每个对象的值?

时间:2013-08-18 13:38:15

标签: jquery json each

我正在尝试从下面带有“$ .each”的JSON文件中获取值,但它没有使用我在下面使用的$ .each方法给出任何值,有人有任何建议我如何制作这项工作正常吗?我想获得每个具有问题值的对象[问题]的信息,然后是每个问题的答案。

JSON:

[
    {
        "Question": "Question 1",
        "Answers": [
            {
                "Answers": "Answer 1",
                "Correct": false
            },
            {
                "Answers": "answer2",
                "Correct": true 
            }
        ]
    },
    {
        "Question": "Question 2",
        "Answers": [
            {
                "Answers": "An Answer",
                "Correct": false
            }
        ] 
    }
]

jQuery的:

$(document).ready(function () {   
    $.get("data.php", function(data) {
        $.each(data, function(i, val) {
            var q = new Question(count++, val.Question);
            questions.push(q);
        });

        $.each(val.Answers, function(i, a) {
            q.addAnswer(a.Answers, a.Correct, q);
            questions.push(q);
        });
    });

感谢任何帮助!


更新

$(document).ready(function () {   
    $.get("data.php?campaign_id=39&social_user_id=1192&edit=true", function(data){

        var questions = [];
        $.each(data, function(i, val) {
            var q = new Question(count++, val.Question);
            questions.push(q);

            $.each(val.Answers, function(i, a) {
                q.addAnswer(a.Answers, a.Correct, q);

            });
        });
    });
});

2 个答案:

答案 0 :(得分:3)

如果要从第二个访问val,则需要嵌套循环。你似乎把右括号放错了地方。

var questions = [];
$.each(data, function(i, val) {
    var q = new Question(count++, val.Question);
    questions.push(q);

    $.each(val.Answers, function(i, a) {
        q.addAnswer(a.Answers, a.Correct, q);
    });
});
process(questions); // callback

答案 1 :(得分:0)

我现在正在管理它!

这是我使用的代码:

   $.get("data.php",
   function(data) {
       $.each(data, function(q ,val) {
           var q = new Question(count++, val.Question);
           questions.push(q);
               $.each(val.Answers, function(a, val) {
            q.addAnswer(val.Answers, val.Correct, q);
           });
       });
   }, "json");