Résumé
La méthode JSON.parse() parse une chaine de caractères en JSON, et optionnellement transforme la valeur produite par le parsing.
Syntaxe
JSON.parse(texte[, reviver])
Paramètres
-
texte -
La chaine de caractère à parser en JSON. Voir l'objet
JSONpour une description de la syntaxe JSON. -
reviver - Si c'est une fonction, prescris comment la valeur originelle produite If a function, prescribes how the value originally produced by parsing is transformed, before being returned.
Elément retourné
Retourne un Objet correspondant au texte envoyé.
Exceptions
Rejete une exception SyntaxError si la chaine de caractère à parser ne contient pas un JSON valide.
Exemples
Exemple: UtiliserJSON.parse()
try {
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
} catch (e) {
console.error("Parsing error:", e);
}
Exemple: Utiliser le paramètre reviver
Si un reviver est spécifié, la valeur obtenue par le parsing est transformée avant d'être retourné. Spécifiquement, la valeur calculé, et toutes les propriétés (commençant avec les propriétés les plus imbriqués), sont executées individuellement à travers le reviver, qui est appelé avec l'objet contenant la propriété en cours de traitement et avec le nom de la propriété en chaine de caractère et la valeur de la propriété en argument. Si la fonction reviver retourne undefined (ou ne retourne aucune valeur, e.g. si l'exécution s'arrête à la fin de la fonction), la propriété est supprimée de l'objet. Autrement la propriété est redéfinie pour être la valeur retournée.
Le reviver est appelé avec une chaine de caractères vide et la valeur la plus proche pour permettre la transformation de cette valeur. Vous devez être certains de gérer ce cas, habituellement par retourner la valeur donné, ou JSON.parse va retourner undefined.
try {
var transformed = JSON.parse('{"p": 5}',
function(k, v) { if (k === "") return v; return v * 2; });
// transformed is { p: 10 }
} catch (e) {
console.error("Parsing error:", e);
}
Specifications
| Specification | Status | Commentaire |
|---|---|---|
| ECMAScript Language Specification 5.1th Edition (ECMA-262) | Standard | Définition initiale. Implementé dans JavaScript 1.7. |
| ECMAScript Language Specification 6th Edition (ECMA-262) | Draft |
Compatibilité navigateurs
| Caractéristique | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support basique | (Oui) | 3.5 (1.9.1) | 8.0 | 10.5 | 4.0 |
| Caractéristique | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Oui) | (Oui) | 1.0 (1.0) | (Oui) | (Oui) | (Oui) |
Based on Kangax's compat table.
Notes spécifiques à Gecko
- À partir de Gecko 29 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26), une chaine de caractère JSON malformé rend un message d'erreur plus détaillé contenant la ligne et le numéro de la colonne causant l'erreur de parsing. C'est très utile pour débugger de nombreuses données JSON.