问题:想知道,在Json文件的内部结构中循环项目的最佳方法是什么。喜欢"放映时间"关键在这里?
我的Json文件:
var movies_list = {
"movies":[
{
"id":"1",
"name":"Finding Nemo",
"audience":"UA",
"language":"english",
"genre":[
"kids",
"adventure"
],
"running_time":"120",
"showtimes":[
{
"cinema_name":"Suncity",
"display_showtime":"10:00 AM",
"showtime_code":1000
},
{
"cinema_name":"PVR",
"display_showtime":"1:00 PM",
"showtime_code":1300
}
]
},
{
"id":"2",
"name":"Incredibles",
"audience":"UA",
"language":"english",
"genre":[
"kids",
"thriller"
],
"running_time":"190",
"showtimes":[
{
"cinema_name":"Suncity",
"display_showtime":"8:00 AM",
"showtime_code":0800
},
{
"cinema_name":"Suncity",
"display_showtime":"2:00 PM",
"showtime_code":1400
}
]
}
]
};
迭代第一个循环工作正常。只想循环播放"放映时间"键。
我的代码:
var data = movies_list.movies;
for(var i = 0; i < data.length; i++){
var fisrtLoopData = data[i];
$('body').append('<p>'+ fisrtLoopData + '</p>');
}
答案 0 :(得分:1)
尝试:
var data = movies_list.movies;
for(var i = 0; i < data.length; i++){
var showtimes = data[i].showtimes
for (var j=0; j<showtimes.length; j++){
var items = showtimes[j]
$('body').append('<p>'+ items.cinema_name + '</p>');
}
}
答案 1 :(得分:0)
$(function(){
var data = movies_list;
Object.keys(data).forEach(function(k){
for(var i = 0; i < movies_list[k].length; i++){
var fisrtLoopData = movies_list[k][i]["name"] + " " + movies_list[k][i]["audience"];
$('body').append('<p>'+ fisrtLoopData + '</p>');
}
});
});
答案 2 :(得分:0)
一些观察结果:
JSON
无效。 0
的前导"showtime_code": 0800
表示JavaScript中的octal number
。八进制数不能包含8
,因此该数字无效。 JSON
没有(正式)支持octal
个号码,即使该号码不包含8
。
更正:如果您有号码,请不要将其与前导zero
一起存储。如果您的值必须为前导零,请不要将其视为number
,而应将其视为string
。用它周围的引号存储它。
JSON
解析:使用JavaScript 方法解析JSON
以获取所需数据。
<强>样本强>
var movies_list = {
"movies":[
{
"id":"1",
"name":"Finding Nemo",
"audience":"UA",
"language":"english",
"genre":[
"kids",
"adventure"
],
"running_time":"120",
"showtimes":[
{
"cinema_name":"Suncity",
"display_showtime":"10:00 AM",
"showtime_code":1000
},
{
"cinema_name":"PVR",
"display_showtime":"1:00 PM",
"showtime_code":1300
}
]
},
{
"id":"2",
"name":"Incredibles",
"audience":"UA",
"language":"english",
"genre":[
"kids",
"thriller"
],
"running_time":"190",
"showtimes":[
{
"cinema_name":"Suncity",
"display_showtime":"8:00 AM",
"showtime_code":800
},
{
"cinema_name":"Suncity",
"display_showtime":"2:00 PM",
"showtime_code":1400
}
]
}
]
};
var arr = [];
var res = movies_list.movies.map(function(item) {
for (var i in item.showtimes) {
arr.push(item.showtimes[i].cinema_name);
}
});
console.log(arr);
&#13;
答案 3 :(得分:0)
movies_list.movies.forEach(function(movie) {
movie.showtimes.forEach(function(showtime) {
console.log(showtime.cinema_name)
});
});
以功能的方式。你实际上并不需要任何循环。