J'ai un objet JSON imbriqué que je dois parcourir, et la valeur de chaque clé peut être une chaîne, un tableau JSON ou un autre objet JSON. Selon le type d'objet, je dois effectuer différentes opérations. Existe-t-il un moyen de vérifier le type de l'objet pour voir s'il s'agit d'une chaîne, d'un objet JSON ou d'un tableau JSON?
J'ai essayé d'utiliser typeof
et instanceof
mais les deux ne semblaient pas fonctionner, tout comme typeof
le retour d'un objet pour l'objet JSON et le tableau, et instanceof
donnant une erreur lorsque je le fais obj instanceof JSON
.
Pour être plus précis, après avoir analysé le JSON dans un objet JS, existe-t-il un moyen de vérifier s'il s'agit d'une chaîne normale, ou d'un objet avec des clés et des valeurs (à partir d'un objet JSON), ou d'un tableau (à partir d'un tableau JSON )?
Par exemple:
JSON
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
Exemple de 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
}
}
Comment effectuer la vérification des objets comme indiqué ci-dessus?