Jquery Ajax显示JSON提要
我想使用这个json端点创建一个汽车模型 如何创建汽车对象,然后为每个汽车对象提供一组一致的属性 我这里有: 错误的输出,您会看到很多“未定义”,因为它循环了整个JSON字符串,并且有6项不是我们要求的3个变量中的项 对不起,我对这个不太熟悉Jquery Ajax显示JSON提要,jquery,json,ajax,Jquery,Json,Ajax,我想使用这个json端点创建一个汽车模型 如何创建汽车对象,然后为每个汽车对象提供一组一致的属性 我这里有: 错误的输出,您会看到很多“未定义”,因为它循环了整个JSON字符串,并且有6项不是我们要求的3个变量中的项 对不起,我对这个不太熟悉 $.get(“series data.json”,函数(obj){ 用于(对象数据系列中的x){ var series_icon=obj.data.series[x].series_icon; 变量显示顺序=对象数据系列[x]。显示顺序; var bra
$.get(“series data.json”,函数(obj){
用于(对象数据系列中的x){
var series_icon=obj.data.series[x].series_icon;
变量显示顺序=对象数据系列[x]。显示顺序;
var brand=obj.data.series[x].品牌;
var html=“”;
html+=“- ”+系列图标+“
”;
html+=“- ”+显示\u order+“
”;
html+=“- ”+品牌+“
”;
html+=“
”;
$('#output').append(html);
}
});
试试这个
$.get( 'series-data.json', function( obj ) {
for(x in obj.data.series){
if(typeof obj.data.series[x].series_icon !='undefined'){
var series_icon = obj.data.series[x].series_icon;
var display_order = obj.data.series[x].display_order;
var brand = obj.data.series[x].brand;
var html = "<ul>";
html += "<li>"+ series_icon +"</li>";
html += "<li>"+ display_order +"</li>";
html += "<li>"+ brand +"</li>";
html += "</ul>";
$('#output').append(html);
}
}
},'json');
$.get('series data.json',函数(obj){
用于(对象数据系列中的x){
if(对象数据的类型系列[x].系列图标!=“未定义”){
var series_icon=obj.data.series[x].series_icon;
变量显示顺序=对象数据系列[x]。显示顺序;
var brand=obj.data.series[x].品牌;
var html=“”;
html+=“- ”+系列图标+“
”;
html+=“- ”+显示顺序+“
”;
html+=“- ”+品牌+“
”;
html+=“
”;
$('#output').append(html);
}
}
}“json”);
给你一个解决方案
$.get(“http://pdi.bmw.staging.oliver.solutions/data/series-data.json,功能(obj){
对于(对象数据系列中的x){
if(obj.data.series[x]。series\u图标!=“未定义”){
$('#output')。追加(`
- ${obj.data.series[x].series_icon}
- ${obj.data.series[x].显示顺序}
- ${obj.data.series[x].brand}
`);
}
}
});代码>
从您的JSON中,我们可以看到系列图标
、显示顺序
和品牌
仅存在于键1系列
和2系列
下,因此您需要相应地更改代码
您需要检查每个迭代的对象下是否存在这些键
,您的代码应该是这样的:
var cars = [];
for(x in obj.data.series){
if(obj.data.series[x].series_icon && obj.data.series[x].display_order && obj.data.series[x].brand){
var series_icon = obj.data.series[x].series_icon;
var display_order = obj.data.series[x].display_order;
var brand = obj.data.series[x].brand;
//This code will create a Car object and push it in the cars array
let car = {};
for(key in obj.data.series[x]){
car[key] = obj.data.series[x][key];
}
cars.push(car);
var html = "<ul>";
html += "<li>"+ series_icon +"</li>";
html += "<li>"+ display_order +"</li>";
html += "<li>"+ brand +"</li>";
html += "</ul>";
$('#output').append(html);
}
}
var cars=[];
用于(对象数据系列中的x){
if(obj.data.series[x].series_图标和&obj.data.series[x].显示订单和&obj.data.series[x].brand){
var series_icon=obj.data.series[x].series_icon;
变量显示顺序=对象数据系列[x]。显示顺序;
var brand=obj.data.series[x].品牌;
//此代码将创建一个Car对象并将其推送到cars数组中
让car={};
用于(输入对象数据系列[x]){
汽车[钥匙]=对象数据系列[x][钥匙];
}
汽车。推(汽车);
var html=“”;
html+=“- ”+系列图标+“
”;
html+=“- ”+显示顺序+“
”;
html+=“- ”+品牌+“
”;
html+=“
”;
$('#output').append(html);
}
}
演示:
这是一个演示:
var obj={
“数据”:{
“系列”:{
“宣传册图像”:“range.jpg”,
“手册id”:“DLR\U CR”,
“手册名称”:“范围”,
“背景图像”:“range.jpg”,
“链接”:http://www.bmw.co.uk/vc/ncc/xhtml/start/startWithModelSelection.faces?productType=1&brand=BM&market=GB&country=GB&locale=en_GB",
“链接文本”:“探索展厅”,
“宝马一号”:{
“系列图标”:“i.png”,
“显示顺序”:12,
“中等图像”:“i-i3.png”,
“品牌”:“宝马i”,
“i3”:{
“系列”:“宝马i3”,
“中等图像”:“i-i3.png”,
“宣传册图片”:“i-i3.png”,
“手册id”:“DLR_I3”,
“手册名称”:“i3”,
“背景图片移动”:“i3.jpg”,
“背景图片”:“i3.jpg”,
“链接”:http://www.bmw.co.uk/en_GB/new-vehicles/bmw-i/i3/2013/introduction.html",
“m_系列”:错误,
“混合”:假,
“映射体类型”:“掀背式”,
“车身类型”:“掀背式I01”,
“主体样式id”:“I01”
},
“i8”:{
“系列”:“宝马i8”,
“中等图像”:“i-i8.png”,
“宣传册图片”:“i-i8.png”,
“手册id”:“DLR_I8”,
“手册名称”:“i8”,
“背景图片移动”:“i8.jpg”,
“背景图片”:“i8.jpg”,
“链接”:http://www.bmw.co.uk/en_GB/new-vehicles/bmw-i/i8/2013/introduction.html",
“m_系列”:错误,
“混合”:假,
“映射车身类型”:“Coupe”,
“车身类型”:“CoupéI12”,
“正文样式id”:“I12”
}
},
“1系列”:{
“series_图标”:“1-series.png”,
“显示顺序”:1,
“中型图片”:“1-series-3-door-sports-hatch.png”,
“品牌”:“宝马”,
“三门运动舱”:{
“系列”:“1系列”,
“中型图片”:“1-series-3-door-sports-hatch.png”,
“宣传册图片”:“1-series-sports-hatch.png”,
“手册id”:“DLR\U F21”,
“手册名称”:“1系列3-门运动舱口”,
“背景图片移动”:“1Series\u 3door.jpg”,
“背景图片”:“1Series\u 3door.jpg”,
“链接”:http://www.bmw.co.uk/en_GB/new-vehicles/1/3-door/2015/introduction.html",
“m_系列”:错误,
“混合”:假,
“映射体类型”:“掀背式”,
“车身类型”:“三门运动型舱口F21”,
“主体样式id”:“F21”
},
“五门运动舱”:{
“系列”:“1系列”,
“中型图片”:“1-series-5-door-sports-hatch.png”,
“宣传册图片”:“1-series-sports-h
var cars = [];
for(x in obj.data.series){
if(obj.data.series[x].series_icon && obj.data.series[x].display_order && obj.data.series[x].brand){
var series_icon = obj.data.series[x].series_icon;
var display_order = obj.data.series[x].display_order;
var brand = obj.data.series[x].brand;
//This code will create a Car object and push it in the cars array
let car = {};
for(key in obj.data.series[x]){
car[key] = obj.data.series[x][key];
}
cars.push(car);
var html = "<ul>";
html += "<li>"+ series_icon +"</li>";
html += "<li>"+ display_order +"</li>";
html += "<li>"+ brand +"</li>";
html += "</ul>";
$('#output').append(html);
}
}
$.get( "series-data.json", function( obj ) {
for(x in obj.data.series){
if (obj.data.series[x].series_icon
&& obj.data.series[x].display_order
&& obj.data.series[x].brand) {
var series_icon = obj.data.series[x].series_icon;
var display_order = obj.data.series[x].display_order;
var brand = obj.data.series[x].brand;
var html = "<ul>";
html += "<li>"+ series_icon +"</li>";
html += "<li>"+ display_order +"</li>";
html += "<li>"+ brand +"</li>";
html += "</ul>";
$('#output').append(html);
}
}
});