admin管理员组文章数量:1312998
Here is my JSON
[
{
"var5":"item-pany-1",
"asd2":"item-pany-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-2",
"asd2":"item-pany-2",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-3",
"asd2":"item-pany-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-pany-1
asd2 => item-pany-1
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
1:
var5 => item-pany-2
asd2 => item-pany-2
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
2:
var5 => item-pany-3
asd2 => item-pany-3
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
Here is my JSON
[
{
"var5":"item-pany-1",
"asd2":"item-pany-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-2",
"asd2":"item-pany-2",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-3",
"asd2":"item-pany-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-pany-1
asd2 => item-pany-1
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
1:
var5 => item-pany-2
asd2 => item-pany-2
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
2:
var5 => item-pany-3
asd2 => item-pany-3
tie1 => 0
cxs1 => 481.891px
xcve2 => 130.563px
Share
Improve this question
edited Mar 25, 2021 at 6:29
Steffi Keran Rani J
4,1134 gold badges40 silver badges60 bronze badges
asked Aug 30, 2016 at 1:56
eqizeqiz
1,5915 gold badges30 silver badges52 bronze badges
5
- Which property should be your key in that object? – Developer Commented Aug 30, 2016 at 2:05
-
console.log(prop, " = ", data[prop])
– zerkms Commented Aug 30, 2016 at 2:05 - @zerkms that just returns the objects not the keys inside each object – eqiz Commented Aug 30, 2016 at 2:07
-
1
That is correct. I just shown you how to deal with
console.log
when you want to output an object. – zerkms Commented Aug 30, 2016 at 2:07 -
It automatically puts spaces in between items when giving multiple parameters to
console.log
, so it would beconsole.log(prop, "=", data[prop])
– castletheperson Commented Aug 30, 2016 at 2:50
5 Answers
Reset to default 3You can try this:
var data = [
{
"var5":"item-pany-1",
"asd2":"item-pany-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-2",
"asd2":"item-pany-2",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-3",
"asd2":"item-pany-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])
}
}
JSON.parse
has a reviver function that lets you view key/value pairs at it parses:
var data = '[{"var5":"item-pany-1","asd2":"item-pany-1","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-pany-2","asd2":"item-pany-2","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-pany-3","asd2":"item-pany-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-pany-1","asd2":"item-pany-1","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-pany-2","asd2":"item-pany-2","tie1":"0","cxs1":"481.891px","xcve2":"130.563px"},{"var5":"item-pany-3","asd2":"item-pany-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]);
}
}
This should work...
data.forEach(function(obj) {
for (let key in obj) {
let value = obj[key];
console.log(`Key: ${key}, Value: ${value}`)
}
});
In your implementation, Object.keys(data)
is evaluating to an array of the numeric keys in the data array. So the prop
parameter in your callback function is not referring to the keys of the objects in the data array.
Object.keys()
You actually have array for objects. So Code should look like this
var data = JSON.parse(json);
for (var key in data) {
for (var prop in data[key]) {
console.log(prop + " = " + data[key][prop]);
}
}
Try this on your code
var data = [
{
"var5":"item-pany-1",
"asd2":"item-pany-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-2",
"asd2":"item-pany-2",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var5":"item-pany-3",
"asd2":"item-pany-3",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
}
];
data.forEach(function(obj,k) {
console.log(k+":");
// `prop` is the property name
// `data[prop]` is the property value
Object.keys(obj).forEach(function(key){
console.log(k+":" +key + " = " + obj[key]);
});
});
本文标签: get JSON key value pair within json object array in javascriptStack Overflow
版权声明:本文标题:get JSON key value pair within json object array in javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741875310a2402425.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论