Javascript 从json对象打印所选属性
我将一个json文件加载到一个变量中。现在我需要打印该变量(json对象)的一些属性。我可以单独访问它们,但我无法激怒和拯救它们Javascript 从json对象打印所选属性,javascript,jquery,Javascript,Jquery,我将一个json文件加载到一个变量中。现在我需要打印该变量(json对象)的一些属性。我可以单独访问它们,但我无法激怒和拯救它们 var companyList = (function() { var json = null; $.ajax({ 'async': false, 'global': false, 'url': "/company_list.json", 'dataType': "json",
var companyList = (function() {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': "/company_list.json",
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
console.log(companyList.comp001.title); // This works
let htmlString = "";
for (i = 0; i <480; i++) {
htmlString += "<p>" + companyList.comp[i].title + " </P>";
}; // I could not able to save them in htmlstring
最简单的方法是循环对象键,并使用
object.keys(companyList)
获取每个对象的title
值:
var公司列表={
“comp001”:{
“头衔”:“亚琴穆恩切纳”,
“img”:“/公司徽标/logos1x/de001.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de001.png?ver=gz30i 1x,/公司徽标/logos2x/de001.png?ver=gz30i 2x,/公司徽标/logos3x/de001.png?ver=gz30i 3x”
},
“comp002”:{
“标题”:“ADAC”,
“img”:“/公司徽标/logos1x/de002.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de002.png?ver=gz30i 1x,/公司徽标/logos2x/de002.png?ver=gz30i 2x,/公司徽标/logos3x/de002.png?ver=gz30i 3x”
},
“comp003”:{
“头衔”:“阿德勒”,
“img”:“/公司徽标/logos1x/de003.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de003.png?ver=gz30i 1x,/公司徽标/logos2x/de003.png?ver=gz30i 2x,/公司徽标/logos3x/de003.png?ver=gz30i 3x”
},
“comp004”:{
“标题”:“ADVOCARD”,
“img”:“/公司徽标/logos1x/de004.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de004.png?ver=gz30i 1x,/公司徽标/logos2x/de004.png?ver=gz30i 2x,/公司徽标/logos3x/de004.png?ver=gz30i 3x”
}};
让htmlString=“”;
Object.keys(公司列表).forEach(函数(键){
htmlString+=“”+公司列表[键]。标题;+“”;
});
document.getElementById('container')。innerHTML=htmlString代码>
您的问题是:
for (i = 0; i <480; i++) {
htmlString += "<p>" + companyList.comp[i].title + " </P>";
}
让它工作
但这并不是全部,你的for
只为480公司工作,如果你的更少,你会在htmlString
中得到很多未定义的内容,如果你的更多,你会损失一些
companyList={
“comp001”:{
“头衔”:“亚琴穆恩切纳”,
“img”:“/公司徽标/logos1x/de001.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de001.png?ver=gz30i 1x,/公司徽标/logos2x/de001.png?ver=gz30i 2x,/公司徽标/logos3x/de001.png?ver=gz30i 3x”
},
“comp002”:{
“标题”:“ADAC”,
“img”:“/公司徽标/logos1x/de002.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de002.png?ver=gz30i 1x,/公司徽标/logos2x/de002.png?ver=gz30i 2x,/公司徽标/logos3x/de002.png?ver=gz30i 3x”
},
“comp003”:{
“头衔”:“阿德勒”,
“img”:“/公司徽标/logos1x/de003.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de003.png?ver=gz30i 1x,/公司徽标/logos2x/de003.png?ver=gz30i 2x,/公司徽标/logos3x/de003.png?ver=gz30i 3x”
},
“comp004”:{
“标题”:“ADVOCARD”,
“img”:“/公司徽标/logos1x/de004.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de004.png?ver=gz30i 1x,/公司徽标/logos2x/de004.png?ver=gz30i 2x,/公司徽标/logos3x/de004.png?ver=gz30i 3x”
},}
让htmlString=“”
for(让公司进入公司列表){
htmlString+=“”+公司列表[公司]。标题+””;
};
log(htmlString)
获取它们的键,然后减少对象以构建包含所有标题的最终html
var公司列表={
“comp001”:{
“头衔”:“亚琴穆恩切纳”,
“img”:“/公司徽标/logos1x/de001.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de001.png?ver=gz30i 1x,/公司徽标/logos2x/de001.png?ver=gz30i 2x,/公司徽标/logos3x/de001.png?ver=gz30i 3x”
},
“comp002”:{
“标题”:“ADAC”,
“img”:“/公司徽标/logos1x/de002.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de002.png?ver=gz30i 1x,/公司徽标/logos2x/de002.png?ver=gz30i 2x,/公司徽标/logos3x/de002.png?ver=gz30i 3x”
},
“comp003”:{
“头衔”:“阿德勒”,
“img”:“/公司徽标/logos1x/de003.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de003.png?ver=gz30i 1x,/公司徽标/logos2x/de003.png?ver=gz30i 2x,/公司徽标/logos3x/de003.png?ver=gz30i 3x”
},
“comp004”:{
“标题”:“ADVOCARD”,
“img”:“/公司徽标/logos1x/de004.png?ver=gz30i”,
“imgsrcset”:“/公司徽标/logos1x/de004.png?ver=gz30i 1x,/公司徽标/logos2x/de004.png?ver=gz30i 2x,/公司徽标/logos3x/de004.png?ver=gz30i 3x”
}
};
const htmlString=Object.keys(companyList).reduce(函数(acc,key){
返回acc+“”+公司列表[key]。title+“”;
}, "");
document.getElementById('container')。innerHTML=htmlString代码>
如果您使用的是ajax。无法分配变量…请使用承诺的回调。然后()
。。
for (i = 0; i <480; i++) {
htmlString += "<p>" + companyList.comp[i].title + " </P>";
}
companyList["comp" + i].title