【问题标题】:Retrieving JSON Objects using javascript [duplicate]使用javascript检索JSON对象[重复]
【发布时间】:2014-02-22 21:59:34
【问题描述】:

我在检索 json 对象时遇到问题。如何检索“选择”关键对象内的对象?感谢您的帮助...

【问题讨论】:

  • SO每天上可能有几十个类似这样的问题。做一些研究并尝试一些 FCOL
  • 谢谢,但我以前做过,现在我想做的是进入下一个级别,我想动态获取“选择”中的对象,这样即使有很多选择我不会费心手动获取对象。非常感谢

标签: javascript json object dynamic


【解决方案1】:

像这样(循环)

for (var i = 0; i < data.questions.length; i++) {
    console.log(data.questions[i].choices.a);
    console.log(data.questions[i].choices.b);
}

【讨论】:

  • 谢谢,但我以前做过,现在我想做的是进入下一个级别,我想动态获取“选择”中的对象,这样即使有很多选择我不会费心手动获取对象。非常感谢
【解决方案2】:
for (var i=0; i<questions.length; i++) {
    var choices = questions[i].choices;
    console.log(choices.a);
    console.log(choices.b);
}

【讨论】:

  • 谢谢,但我以前做过,现在我想做的是进入下一个级别,我想动态获取“选择”中的对象,这样即使有很多选择我不会费心手动获取对象。非常感谢
【解决方案3】:

假设您有一个类似 var myobj = { ... } 的 var 分配,其中 ... 是您在帖子中的 json 对象,那么您将访问所有选择数据点,如下所示:

myobj.questions[0].choices.a
myobj.questions[0].choices.b
myobj.questions[1].choices.a
myobj.questions[1].choices.b

您是否在询问有关如何循环所有问题和选择的更具体的问题?

更新:在您发表评论后,我想您可能正在寻找类似这样的东西:

for (var qi=0; qi < myobj.questions.length; qi++) {
    var q = myobj.questions[qi];
    console.log(q.ques);
    for (var choiceKey in q.choices) {
        console.log("    " + choiceKey + " --> " + q.choices[choiceKey]);
    }
}

只需将 console.log() 语句替换为您需要的任何逻辑即可。在您的示例 JSON 上运行上述代码的输出是这样的:

how old are you?
    a --> 19
    b --> 20
question two?
    a --> answer1
    b --> answer2

【讨论】:

  • 谢谢,但我以前做过,现在我想做的是进入下一个级别,我想动态获取“选择”中的对象,这样即使有很多选择我不会费心手动获取对象。非常感谢
  • 这正是我想要的。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
相关资源
最近更新 更多