eqiz eqiz - 3 months ago 8
Javascript Question

get JSON key value pair with json object array in javascript

Here is my JSON

[
{
"var5":"item-company-1",
"asd2":"item-company-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-company-2",
"asd2":"item-company-2",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-company-3",
"asd2":"item-company-3",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
}
]


How do I read the key and the value? Keep in mind I might not know the Key. I tried using...

var data = JSON.parse(json);

Object.keys(data).forEach(function(prop) {
// `prop` is the property name
// `data[prop]` is the property value
console.log(prop + " = " + data[prop]);
});


However it just outputs

0 = [object Object]
1 = [object Object]
2 = [object Object]


EDIT FOR CLARIFICATION

in PHP I get the following output which is what I'm trying to achieve from javascript

0:
var5 => item-company-1
asd2 => item-company-1
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
1:
var5 => item-company-2
asd2 => item-company-2
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
2:
var5 => item-company-3
asd2 => item-company-3
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px

Answer

JSON.parse has a reviver function that lets you view key/value pairs at it parses:

var data = '[{"var5":"item-company-1","asd2":"item-company-1","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-company-2","asd2":"item-company-2","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-company-3","asd2":"item-company-3","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"}]';

JSON.parse(data, function(key, value) {
  console.log(key, "=>", value);
  return value;
});

To iterate just the keys from the objects, use nested loops:

var json = '[{"var5":"item-company-1","asd2":"item-company-1","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-company-2","asd2":"item-company-2","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-company-3","asd2":"item-company-3","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"}]';

var data = JSON.parse(json);

for (var i = 0; i < data.length; i++) {
  console.log(i + ":");
  for (var key in data[i]) {
    console.log(key, "=>", data[i][key]);  
  }
}