Ich habe ein verschachteltes JSON-Objekt, das ich durchlaufen muss, und der Wert jedes Schlüssels kann ein String, ein JSON-Array oder ein anderes JSON-Objekt sein. Je nach Objekttyp muss ich verschiedene Operationen ausführen. Kann ich den Typ des Objekts auf irgendeine Weise überprüfen, um festzustellen, ob es sich um einen String, ein JSON-Objekt oder ein JSON-Array handelt?
Ich habe versucht, typeof
und instanceof
beide schienen nicht zu funktionieren, da typeof
ein Objekt sowohl für das JSON-Objekt als auch für das Array zurückgegeben wird und dabei instanceof
ein Fehler auftritt obj instanceof JSON
.
Genauer gesagt, kann ich nach dem Parsen des JSON in ein JS-Objekt auf irgendeine Weise überprüfen, ob es sich um eine normale Zeichenfolge oder ein Objekt mit Schlüsseln und Werten (von einem JSON-Objekt) oder ein Array (von einem JSON-Array) handelt )?
Beispielsweise:
JSON
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
Beispiel JavaScript
var jsonObj = JSON.parse(data);
var path = ["hi","hello"];
function check(jsonObj, path) {
var parent = jsonObj;
for (var i = 0; i < path.length-1; i++) {
var key = path[i];
if (parent != undefined) {
parent = parent[key];
}
}
if (parent != undefined) {
var endLength = path.length - 1;
var child = parent[path[endLength]];
//if child is a string, add some text
//if child is an object, edit the key/value
//if child is an array, add a new element
//if child does not exist, add a new key/value
}
}
Wie führe ich die Objektprüfung wie oben gezeigt durch?