首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Javascript检索JSON中的子数组元素?

如何用Javascript检索JSON中的子数组元素?
EN

Stack Overflow用户
提问于 2015-02-08 07:22:25
回答 2查看 2.2K关注 0票数 0

我有这个JSON对象,我想用javascript解析它。我可以得到B,A和208,但是我很难从时间里得到数据。

代码语言:javascript
复制
{
"room":[
    {"campusName":"B",
    "buildingCode":"A",
    "roomNumber":"208",
    "times":[
            "7-8", "9-10"
    ]
    }
]
}

$(document).ready(function(){
  $.getJSON("data.json", function(data){
    $.each(data.room, function(data){
        $("ul").append("<li>campus: "+this['campusName']+"</li><li>building: "+this['buildingCode']+"</li>");
        $.each(data.times, function(){
            $("ul").append("<li>stuff: "+this['times']+"</li>")
        });
    });
  });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-08 07:48:51

为您的JSON尝试以下代码

代码语言:javascript
复制
var data = {
"room":[
    {"campusName":"B",
    "buildingCode":"A",
    "roomNumber":"208",
    "times":[
            "7-8", "9-10"
    ]
    }
]
}

然后,您可以使用以下方法获得所需的结果:

代码语言:javascript
复制
data.room[0].campusName; // ==> B
data.room[0].buildingCode; // ==> A
data.room[0].roomNumber; // ==> 208
data.room[0].times; // ==> ["7-8", "9-10"]

EDIT2:

代码语言:javascript
复制
$.each(data.room, function(i) { 
    console.log(data.room[i].campusName);
    console.log(data.room[i].buildingCode );
    console.log(data.room[i].roomNumber );
    console.log(data.room[i].times);
});

输出

代码语言:javascript
复制
B
A
208
["7-8", "9-10"]

EDIT1:

要了解更多细节,请访问 syntax和如何访问它。

票数 0
EN

Stack Overflow用户

发布于 2015-02-08 07:31:45

data.times的元素只是字符串,而不是对象,所以不应该对它们进行索引。它应该是:

代码语言:javascript
复制
$.each(data.times, function() {
    $("ul").append("<li>stuff: " + this + "</li>");
});

另外,第一个$.each()回调中的参数列表是错误的。它应该是function(i, data) --第一个参数是数组索引(如果对一个对象进行迭代,则为对象属性名称),第二个参数是值。

代码语言:javascript
复制
var data = {
  "room": [{
    "campusName": "B",
    "buildingCode": "A",
    "roomNumber": "208",
    "times": [
      "7-8", "9-10"
    ]
  }]
};

$.each(data.room, function(i, data) {
  $("ul").append("<li>campus: " + this['campusName'] + "</li><li>building: " + this['buildingCode'] + "</li>");
  $.each(data.times, function() {
    $("ul").append("<li>stuff: " + this + "</li>");
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul></ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28391607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档