Quotidien Shaarli

Tous les liens d'un jour sur une page.

Aujourd'hui - September 1, 2026

Encode, don't stringify - how JSON.stringify lies to you - DEV Community

L’article de Dmitry Zakharov critique l’usage de JSON.stringify en JavaScript, qu’il considère comme une mauvaise pratique à proscrire au profit d’outils d’encodage dédiés. Il souligne que cette fonction native, souvent utilisée par défaut, présente des risques majeurs : elle retourne undefined pour certains types (fonctions, undefined), génère des erreurs non explicites (comme pour les BigInt ou les structures circulaires), et surtout, elle corrompt silencieusement les données en les transformant en null ou en les omettant (par exemple, Infinity devient null, ou les clés avec undefined disparaissent).

L’auteur propose une alternative radicale : remplacer JSON.stringify par des encodeurs spécialisés, comme sa propre bibliothèque Sury, conçue pour éviter ces écueils. Il compare cette approche à la philosophie "Parse, don’t validate" de 2019, suggérant qu’elle pourrait devenir une norme dans l’écosystème JavaScript. Bien que JSON.stringify reste utile en interne pour certains encodeurs, Zakharov insiste sur le fait qu’elle ne devrait jamais apparaître directement dans le code applicatif.