Ich habe den folgenden Code, der funktioniert, aber es scheint übergewichtig für den Zweck. Gibt es einen kürzeren Weg, um das Ziel zu erreichen, verschachtelte JSONs zu durchlaufen?Verfeinern von node.js Code zum Durchlaufen von json verschachtelten Objekten
ich dies auf Lambda leite und Laden der json von s3
myFile.json
{
"jsonIsOk":
[
{
"txt_in": "aaa",
"txt_out": "111"
},
{
"txt_in": "bbb",
"txt_out": "222"
},
{
"txt_in": "ccc",
"txt_out": "333"
}
]
}
Lambda node.js
var isJsnOk = "jsonIsOk";
var s3 = new AWS.S3({httpOptions: { timeout: 2000 }});
var params = {
Bucket: 'myBucket',
Key: 'myFile.json',
};
s3.getObject(params, function (err, data) {
if (err) {
console.log(err, err.stack);
} else {
var loadJson = data.Body.toString();
var jsnAry = JSON.parse(loadJson);
if (jsnAry.hasOwnProperty(isJsnOk)) {
for (var key_01 in jsnAry) {
if (jsnAry.hasOwnProperty(key_01)) {
for (var key_02 in jsnAry[key_01]) {
console.log('key_02=' + key_02);
if (jsnAry[key_01].hasOwnProperty(key_02)) {
for (var key_03 in jsnAry[key_01][key_02]) {
console.log('key_03=' + key_03 + ': val_03 =' + jsnAry[key_01][key_02][key_03]);
}
}
console.log("-------");
}
}
}
} else {
console.log("error: json is not ok!");
}
}
}
Ausgang
key_02=0
key_03=txt_in: val_03 =aaa
key_03=txt_out: val_03 =111
-------
key_02=1
key_03=txt_in: val_03 =bbb
key_03=txt_out: val_03 =222
-------
key_02=2
key_03=txt_in: val_03 =ccc
key_03=txt_out: val_03 =333
-------
Welche info sollte * key_02 * liefern ?? Kannst du es einfach weglassen? –