以HTML格式显示json中的所有数据

时间:2017-12-13 11:43:08

标签: javascript html

大家好我有这样的Json数据:

{"city_name": "A",
        "members": [
            {
                "members_name": "Jonathan Doe",
                "bod": "1980-01-20",
                "job": "Accounting",
            },
            {
                "members_name": "Lucy Dash",
                "bod": "1976-01-20",
                "job": "HR",
            },
]
    }

和javascript调用:

var res = info.city_name.filter(function(item){
  return item.city_name =='City A';
});
console.log(res);
var HTML = '<span>'+res[0].city_name+'</span>';
$('#name').append(HTML)
HTML = '<span>'+res[0].members_name+'</span>';
$('#members').append(HTML);

我上面的js调用仍然使用行号值在html中打印,我想要做的是在一次调用中显示所有成员名称&#34;类似 res [i] .members_name 但它没有用。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

var res = info.city_name.filter(function(item){
  return item.city_name =='City A';
});    

//add this
res[0].members_names = res[0].members.reduce( (acc, curr) => {
    acc += ` ${curr.members_name} `
    return acc;
}, '');

//Then you can use res[0].members_names to display all the members names

您需要迭代成员数组才能显示所有这些数组。也许添加一个新的属性members_names,这是所有成员名称的串联,并显示它将适合你。

答案 1 :(得分:1)

res.forEach(function(r){
    var HTML = '<span>'+r.city_name+'</span>';
    HTML += '<span>'+r.members_name+'</span>';
    $('#members').append(HTML); 
});

for(i=0;i<res.length;i++){
    var HTML = '<span>'+res[i].city_name+'</span>';
    HTML += '<span>'+res[i].members_name+'</span>';
    $('#members').append(HTML); 
}