112 votes

Comment vérifier si un objet JavaScript est JSON ?

J'ai un objet JSON imbriqué que je dois parcourir en boucle, et la valeur de chaque clé peut être une chaîne, un tableau JSON ou un autre objet JSON. En fonction du type d'objet, je dois effectuer des opérations différentes. Existe-t-il un moyen de vérifier le type de l'objet pour savoir s'il s'agit d'une chaîne, d'un objet JSON ou d'un tableau JSON ?

J'ai essayé d'utiliser typeof y instanceof mais les deux ne semblent pas fonctionner, car typeof retournera un objet pour les objets JSON et les tableaux, et instanceof donne une erreur lorsque je 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, 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 le contrôle d'objet comme indiqué ci-dessus ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X