Reputation: 369
i have a json-file looking like this:
{
"results": {
"name1": {
"printouts": {
"property1": [{
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
}
],
"property2": [
"someText"
],
"property3": [
"someText"
],
"property4": [
"someText"
],
"property5": [
"someText"
],
"property6": [
"someText"
]
},
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
},
"name2": {
"printouts": {
"property1": [{
"fulltext": "someText",
"fullurl": "someURL",
"namespace": integer,
"exists": boolean
}
],
"property2": [
"someText"
],
"property3": [
"someText"
],
"property4": [
"someText"
],
"property5": [
"someText"
],
"property6": [
"someText"
]
},
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
},
......
}
What i want is to access property6
of each object in printouts
.
What i've done so far:
for (i in results) {
if (someOtherArray.length < 1) {
someOtherArray.push(i.printouts.property6.toString());
}
But this gets me Error: Cannot read property property6 of undefined. What am i doing wrong?
Any Idea? Thanks.
Upvotes: 0
Views: 5600
Reputation: 386883
Basically you have the wrong access to the property with
i.printouts.property6
it needs to be an object with a property accessor with bracket notation for a variable.
data.results[i].printouts.property6
//^^^^^^^^^^^^^
Then you could iterate over the keys and select the property you want.
var data = { results: { name1: { printouts: { property1: [{ someName: "someText", someName2: "someURL", someName3: 33, someName4: false }], property2: ["someText"], property3: ["someText"], property4: ["someText"], property5: ["someText"], property6: ["someText"] }, someName: "someText", someName2: "someURL", someName3: 37, someName4: true }, name2: { printouts: { property1: [{ fulltext: "someText", fullurl: "someURL", namespace: 35, "exists": true }], property2: ["someText"], property3: ["someText"], property4: ["someText"], property5: ["someText"], property6: ["someText"] }, someName: "someText", someName2: "someURL", someName3: 34, someName4: false } } };
Object.keys(data.results).forEach(function (k) {
console.log(data.results[k].printouts.property6);
});
Upvotes: 2