Comment dois-je analyser JSON à l’aide de node.js ? Y a-t-il un module qui validera et parse JSON en toute sécurité ?
Réponses
Trop de publicités?Vous pouvez simplement utiliser JSON.parse
.
node.js construit sur la V8, qui fournit de l'objet global JSON
[docs]. La définition de l' JSON
objet fait partie de la spécification ECMAScript 5.
vous pouvez exiger les fichiers .json.
Par exemple, si vous avez un `` fichier dans le même répertoire que votre fichier de code source, vous utiliseriez :
ou (extension de fichier peut être omise) :
Notez que `` ne lit le fichier une fois que, suite à des appels retour le résultat du cache
Vous pouvez utiliser JSON.parse()
.
AVERTISSEMENT: Si vous n'êtes pas sûr si ce qui est transmis à l' JSON.parse()
est JSON valide, assurez-vous de joindre l'appel à JSON.parse()
à l'intérieur d'un try/catch
bloc.
L'analyse d'une chaîne de caractères contenant les données JSON
var str = '{ "name": "John Doe", "age": 42 }';
var json = JSON.parse(str);
L'analyse d'un fichier contenant des données JSON
Vous aurez à faire quelques opérations sur les fichiers avec l' fs
module de:
var fs = require('fs');
Ensuite, vous pouvez lire les données de manière asynchrone/synchrone.
Version asynchrone
fs.readFile('/path/to/file.json', 'utf8', function (err, data) {
if (err) throw err; // we'll not consider error handling for now
var json = JSON.parse(data);
});
Version synchrone
var json = JSON.parse(fs.readFileSync('/path/to/file.json', 'utf8'));
AVERTISSEMENT: Vous pouvez également utiliser require
, mais ce n'est pas recommandé:
var json = JSON.parse(require('path/to/file.json'));
require
va lire le fichier qu'une seule fois. Les appels ultérieurs require
le même fichier sera de retour une copie mise en cache. Pas une bonne idée si vous voulez lire un .json
fichier est mis à jour continuellement.
jsonfile
module
Si vous êtes à la lecture d'un grand nombre de .json
fichiers, (et si vous êtes très paresseux), il devient gênant pour écrire du code réutilisable à chaque fois. Vous pouvez enregistrer certains caractères à l'aide de l' jsonfile
module.
Utilisez l' objet JSON:
Je tiens à mentionner qu’il existe des solutions de rechange à l’objet global de JSON. JSON.parse et JSON.stringify sont à la fois synchrones, alors si vous voulez traiter les gros objets vous voudrez vérifier certains des modules JSON asynchrones.
Jetez un coup d’oeil : https://github.com/joyent/node/wiki/Modules#wiki-parsers-json