Я ниже JSON, я сталкиваюсь с трудностями, чтобы получить ключ и значение динамически из массива JSON:Как получить JSON ключ массива и значение динамически с помощью JQuery или JavaScript
var productJSON = {
"byProduct": {
"category": {
"Entertainment": {
"TV": 7,
"Speaker": 24,
"DVD Player": 5,
"Home Theater": 4
},
"Home": {
"Sofa Couch": 1,
"TV Furniture": 4
},
"Mobile": {
"iPhone 5s": 1,
"Accessories": 4
}
}
}
}
Я хочу ключ, значение из каждой категории и положить в два разных массива, один для названия продукта и другого для продукта рассчитывать как:
["TV", "Speaker", "DVD Player", "Home Theater","Sofa Couch", "TV Furniture", "iPhone 5s", "Accessories"]
[7, 24, 5, 4,1,4,1,4]
может кто-то помочь, как я могу получить выход, как это?
Как я могу получить эти значения из массива выше JSON, ниже мой код, но не в состоянии разобрать весь элемент из каждой категории:
var ProductJSON = productJSON.byProduct;
var productsName = [], productCount = [];
Object.keys(ProductJSON.category).forEach(function (v) {
var k = Object.keys(ProductJSON.category[v])[0];
productsName.push(k);
productCount.push(ProductJSON.category[v][k]);
});
console.log(productsName);
console.log(productCount);
Спасибо за вашу помощь заранее.
Вы в основном получили его. Но по какой-то причине вы только захватываете первые названия продуктов 'Object.keys (ProductJSON.category [v]) [0]'. Удаление '[0]' даст вам все имена продуктов. –
Но это не дает счет для всех продуктов :( –
Вы должны также перебирать 'Object.keys (ProductJSON.category [v])' или просто использовать цикл 'for/in':' for (var k в ProductJSON.category [v]) {productsName.push (k); productCount.push (ProductJSON.category [v] [k]);} '. –