0

I've below JSON, I want to get key and value dynamically for each product categories (Electronics, Home, Toys etc) . These categories is dynamic - it can by anything.

I want to store all product name in one array and value in another array, like below

var products = [Laptop, Photoframe, Toys]
Var productCount = [5,6,2]

How can I get key and value dynamically from JSON? Any help

{
    "product": {
        "Electronics": {
            "Laptop": 5
        },
        "Home": {
            "Photoframe": 6
        },
        "Toys": {
            "PuzzleBox": 2
        }
    }
}
java begineer
  • 319
  • 5
  • 15

1 Answers1

0

You can use Object.keys() to get object keys, then iterate over them using forEach() and generate the arrays.

var products = [],
  productCount = [],
  data = {
    "product": {
      "Electronics": {
        "Laptop": 5
      },
      "Home": {
        "Photoframe": 6
      },
      "Toys": {
        "PuzzleBox": 2
      }
    }
  };

Object.keys(data.product).forEach(function(v) {
  var k = Object.keys(data.product[v])[0];
  products.push(k);
  productCount.push(data.product[v][k]);
});

document.write('<pre>' + JSON.stringify(products, 0, 3) + '\n' + JSON.stringify(productCount, 0, 3) + '</pre>');
Pranav C Balan
  • 113,687
  • 23
  • 165
  • 188