Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

get JSON key value pair within 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
like image 533
eqiz Avatar asked Sep 18 '26 11:09

eqiz


2 Answers

You can try this:

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"
   }
]

for(var i=0,item;item=data[i++];){
  console.log("==========="+i+"=========")
  for(var key in item){
    console.log(key+":"+item[key])
  }
}
like image 132
Ying Yi Avatar answered Sep 20 '26 00:09

Ying Yi


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]);  
  }
}
like image 27
4castle Avatar answered Sep 20 '26 01:09

4castle



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!