Javascript 根据索引名动态解析JSON数据
如何根据索引名解析此对象数据。我与大家分享一个数据示例。但在实际项目中,我也得到了大量的索引和子json数据。Javascript 根据索引名动态解析JSON数据,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,如何根据索引名解析此对象数据。我与大家分享一个数据示例。但在实际项目中,我也得到了大量的索引和子json数据。 下面是JSON数据示例: var vehicles = { 'cars':[ { "name":"Car 1", "model":"Car 1 Model 1" }, { "name":"Car 2",
下面是JSON数据示例:
var vehicles = {
'cars':[
{
"name":"Car 1",
"model":"Car 1 Model 1"
},
{
"name":"Car 2",
"model":"Car 2 Model 2"
},
],
'bikes':[
{
"name":"Bike 1",
"model":"Bike Model 1",
},
{
"name":"Bike 2",
"model":"Bike Model 2",
}
],
'buses':[
{
"name":"Bus 1",
"model":"Bus Model 1",
},
{
"name":"Bus 2",
"model":"Bus Model 2",
}
],
}
我从服务器上动态获取此信息。在这个json数据包中,数据是汽车/自行车/公共汽车。但也可以是不同的名字。
问题是如何根据cars/bikes访问Car 1或Bike 1,而无需如下定义
console.log(vehicles.buses[0].name);
Output : Bus 1
如果您看到这里定义的总线。我想动态地这样做。
如何做?如果我理解了您的问题,您希望能够在运行前访问属性中的每个数组,而不知道属性的名称 因此,您可以使用
Object.keys()
集合和括号符号来访问数组,如下所示:
Object.keys(vehicles).forEach((key) => {
console.log(vehicles[key][0].name);
});
var车辆={
“汽车”:[{
“名称”:“1号车”,
“车型”:“1号车车型1”
}, {
“名称”:“车辆2”,
“车型”:“汽车2车型2”
}],
“自行车”:[{
“名称”:“自行车1”,
“型号”:“自行车型号1”,
}, {
“名称”:“自行车2”,
“型号”:“自行车型号2”
}],
‘巴士’:[{
“名称”:“总线1”,
“型号”:“总线型号1”
}, {
“名称”:“总线2”,
“型号”:“总线型号2”
}],
“福”:[{
“名称”:“Foo 1”,
“模型”:“Foo模型1”
}, {
“名称”:“Foo 2”,
“模型”:“Foo模型2”
}]
}
对象。键(车辆)。forEach((键)=>{
console.log(车辆[key][0].名称);
});代码>创建一个函数,在该函数中映射车辆类型数组并返回名称:
var车辆={
汽车:[{
名称:“1号车”,
车型:“1号车车型1”
}, {
名称:“汽车2”,
车型:“汽车2车型2”
}],
自行车:[{
名称:“自行车1”,
型号:“自行车型号1”
}, {
名称:“自行车2”,
型号:“自行车型号2”
}],
巴士:[{
名称:“巴士1号”,
型号:“巴士型号1”
}, {
名称:"巴士2",,
型号:“公共汽车型号2”
}]
};
函数getVehicleNames(类型){
return Object.keys(vehicles[type]).map(key=>vehicles[type][key].name)
}
函数getAllVehicleNames(){
返回对象.keys(车辆).map(类型=>{
返回{[type]:Object.keys(vehicles[type]).map(key=>vehicles[type][key].name)}
})
}
//控制台日志(获取车辆名称(“总线”))
//控制台日志(获取车辆名称(“cars”))
console.log(getAllVehicleNames())
正是我要找的@Rorywhen它从服务器动态获取,而你不知道它的巴士或汽车呢@symlink@RiponUddin然后你必须循环遍历整个vehicles对象。我正在寻找这个@symlink,尽管答案1对我有用。@Riponaddin请看我的editam从服务器获取72572行。在DataTable上显示需要4-5分钟。有什么办法可以让它快点吗?