Non aux JSON malformés : Pourquoi il faut respecter les standards
JSON (JavaScript Object Notation) est un format léger d'échange de données largement utilisé en raison de sa simplicité et de sa compatibilité avec de nombreux langages de programmation. Défini par la RFC 8259, il impose des règles strictes pour les chaînes de caractères, les nombres et les structures de données. Malgré cela, certains développeurs produisent des JSON non conformes, créant des problèmes d'interopérabilité.
Les chaînes JSON doivent échapper certains caractères comme les guillemets ou les sauts de ligne. Par exemple, un saut de ligne doit être représenté par '\\n'. Des bibliothèques standards dans tous les langages savent générer et parser du JSON valide. Pourtant, certains systèmes produisent des JSON malformés, espérant que les parseurs les accepteront.
En Python, JavaScript, Java ou C#, tenter de parser un JSON malformé génère systématiquement des erreurs. Ces documents ne sont tout simplement pas du JSON valide. Accepter ces documents revient à accumuler de la dette technique, c'est-à-dire des solutions temporaires qui compliquent le système à long terme.
La solution est simple : rejeter tout JSON invalide. Produire du JSON valide est facile et des bibliothèques existent pour cela. Les bogues doivent être corrigés à la source plutôt que de s'adapter à des systèmes défectueux. Comme l'écrit Daniel Lemire dans son blog le 4 juillet 2025, il faut dire non aux JSON malformés pour préserver l'interopérabilité, cœur de métier de JSON.
Daniel Lemire est professeur d'informatique à l'Université du Québec (TÉLUQ). Son article complet est disponible sur son blog : https://lemire.me/blog/2025/07/04/just-say-no-to-broken-json/.