我有这个JSON对象,我想用javascript解析它。我可以得到B,A和208,但是我很难从时间里得到数据。
{
"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>")
});
});
});
});发布于 2015-02-08 07:48:51
为您的JSON尝试以下代码
var data = {
"room":[
{"campusName":"B",
"buildingCode":"A",
"roomNumber":"208",
"times":[
"7-8", "9-10"
]
}
]
}然后,您可以使用以下方法获得所需的结果:
data.room[0].campusName; // ==> B
data.room[0].buildingCode; // ==> A
data.room[0].roomNumber; // ==> 208
data.room[0].times; // ==> ["7-8", "9-10"]EDIT2:
$.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);
});输出
B
A
208
["7-8", "9-10"]EDIT1:
要了解更多细节,请访问 syntax和如何访问它。
发布于 2015-02-08 07:31:45
data.times的元素只是字符串,而不是对象,所以不应该对它们进行索引。它应该是:
$.each(data.times, function() {
$("ul").append("<li>stuff: " + this + "</li>");
});另外,第一个$.each()回调中的参数列表是错误的。它应该是function(i, data) --第一个参数是数组索引(如果对一个对象进行迭代,则为对象属性名称),第二个参数是值。
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>");
});
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul></ul>
https://stackoverflow.com/questions/28391607
复制相似问题