diff options
author | julieng <julien.gattelier@gmail.com> | 2021-08-03 08:03:23 +0200 |
---|---|---|
committer | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-09-03 08:08:25 +0200 |
commit | bf8e099b9c8b3c60d60b3712b4fc97b052c39887 (patch) | |
tree | c101746d082c9581c94f5937519c7d0e2f4af8cb /files/fr/web/javascript/reference/global_objects/json/parse | |
parent | 844f5103992238c0c23203286dad16a466e89c97 (diff) | |
download | translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.gz translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.bz2 translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.zip |
convert content to md
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/json/parse')
-rw-r--r-- | files/fr/web/javascript/reference/global_objects/json/parse/index.md | 116 |
1 files changed, 47 insertions, 69 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/json/parse/index.md b/files/fr/web/javascript/reference/global_objects/json/parse/index.md index 071d0c8a92..723c68223b 100644 --- a/files/fr/web/javascript/reference/global_objects/json/parse/index.md +++ b/files/fr/web/javascript/reference/global_objects/json/parse/index.md @@ -10,38 +10,37 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/JSON/parse original_slug: Web/JavaScript/Reference/Objets_globaux/JSON/parse --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>La méthode <code><strong>JSON.parse()</strong></code> analyse une chaîne de caractères JSON et construit la valeur JavaScript ou l'objet décrit par cette chaîne. On peut éventuellement utiliser cette fonction avec un paramètre de modification permettant de traiter l'objet avant qu'il soit renvoyé.</p> +La méthode **`JSON.parse()`** analyse une chaîne de caractères JSON et construit la valeur JavaScript ou l'objet décrit par cette chaîne. On peut éventuellement utiliser cette fonction avec un paramètre de modification permettant de traiter l'objet avant qu'il soit renvoyé. -<div>{{EmbedInteractiveExample("pages/js/json-parse.html")}}</div> +{{EmbedInteractiveExample("pages/js/json-parse.html")}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox">JSON.parse(<var>texte</var>[, <var>reviver</var>])</pre> + JSON.parse(texte[, reviver]) -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<dl> - <dt><code>texte</code></dt> - <dd>La chaine de caractère à analyser comme du JSON. Voir l'objet {{jsxref("JSON")}} pour une description de la syntaxe JSON.</dd> - <dt><code>reviver</code></dt> - <dd>Si l'argument est une fonction, effectue une opération de transformation sur la valeur analysée avant de la renvoyer.</dd> -</dl> +- `texte` + - : La chaine de caractère à analyser comme du JSON. Voir l'objet {{jsxref("JSON")}} pour une description de la syntaxe JSON. +- `reviver` + - : Si l'argument est une fonction, effectue une opération de transformation sur la valeur analysée avant de la renvoyer. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>Un objet ({{jsxref("Object")}}) correspondant au texte envoyé.</p> +Un objet ({{jsxref("Object")}}) correspondant au texte envoyé. -<h3 id="Exceptions">Exceptions</h3> +### Exceptions -<p>Lève une exception {{jsxref("SyntaxError")}} si la chaine de caractère à analyser ne contient pas du JSON valide.</p> +Lève une exception {{jsxref("SyntaxError")}} si la chaine de caractère à analyser ne contient pas du JSON valide. -<h2 id="Exemples">Exemples</h2> +## Exemples -<h3 id="Utiliser_JSON.parse">Utiliser <code>JSON.parse()</code></h3> +### Utiliser `JSON.parse()` -<pre class="brush: js">try { +```js +try { JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"toto"'); // "toto" @@ -50,15 +49,16 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/JSON/parse } catch (e) { console.error("Parsing error:", e); } -</pre> +``` -<h3 id="Utiliser_le_paramètre_reviver">Utiliser le paramètre <code>reviver</code></h3> +### Utiliser le paramètre `reviver` -<p>Si un <em>reviver</em> est spécifié, la valeur obtenue par l'analyse est transformée avant d'être renvoyée. Plus précisément, la valeur calculée, et toutes les propriétés (commençant avec les propriétés les plus imbriquées), sont passées individuellement au <em>reviver</em>, qui est appelé avec : l'objet contenant la propriété en cours de traitement, le nom de la propriété en chaine de caractères et la valeur de la propriété. Si la fonction <em>reviver</em> retourne {{jsxref("undefined")}} (ou ne retourne aucune valeur, par exemple 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 avec la valeur retournée.</p> +Si un _reviver_ est spécifié, la valeur obtenue par l'analyse est transformée avant d'être renvoyée. Plus précisément, la valeur calculée, et toutes les propriétés (commençant avec les propriétés les plus imbriquées), sont passées individuellement au _reviver_, qui est appelé avec : l'objet contenant la propriété en cours de traitement, le nom de la propriété en chaine de caractères et la valeur de la propriété. Si la fonction _reviver_ retourne {{jsxref("undefined")}} (ou ne retourne aucune valeur, par exemple 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 avec la valeur retournée. -<p>Si le <em>reviver</em> ne transforme que certaines valeurs et pas d'autres, assurez-vous que les valeurs inchangées soient renvoyées telles quelles. En effet, si elles ne sont pas renvoyées, elles seront supprimés sur l'objet obtenu !</p> +Si le _reviver_ ne transforme que certaines valeurs et pas d'autres, assurez-vous que les valeurs inchangées soient renvoyées telles quelles. En effet, si elles ne sont pas renvoyées, elles seront supprimés sur l'objet obtenu ! -<pre class="brush: js">JSON.parse('{"p": 5}', (key, value) => { +```js +JSON.parse('{"p": 5}', (key, value) => { if (typeof value === 'number') { return value * 2; // renvoie value * 2 pour les nombres } @@ -67,7 +67,7 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/JSON/parse // { p: 10 } -JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', (key, value) => { +JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', (key, value) => { console.log(key); // on affiche le nom de la propriété dans la console return value; // et on renvoie la valeur inchangée. }); @@ -78,51 +78,29 @@ JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', (key, value) => { // 6 // 5 // 3 -// ""</pre> +// "" +``` -<h3 id="JSON.parse_naccepte_pas_les_virgules_en_fin_de_tableau"><code>JSON.parse()</code> n'accepte pas les virgules en fin de tableau</h3> +### `JSON.parse()` n'accepte pas les virgules en fin de tableau -<pre class="brush: js example-bad">// les deux instructions qui suivent lèveront une SyntaxError +```js example-bad +// les deux instructions qui suivent lèveront une SyntaxError JSON.parse('[1, 2, 3, 4, ]'); JSON.parse('{ "toto" : 1, }'); -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Définition initiale.<br> - Implementée avec JavaScript 1.7.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.JSON.parse")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("JSON.stringify()")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}} | {{Spec2('ES5.1')}} | Définition initiale. Implementée avec JavaScript 1.7. | +| {{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.JSON.parse")}} + +## Voir aussi + +- {{jsxref("JSON.stringify()")}} |