Non aux JSON malformés : Pourquoi il faut respecter les standards

Just say no to broken JSON

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/.

Hãy nói không với JSON lỗi - Bảo vệ sự toàn vẹn của dữ liệu

JSON (JavaScript Object Notation) là định dạng trao đổi dữ liệu nhẹ, được sử dụng rộng rãi nhờ tính đơn giản và khả năng tương thích với nhiều ngôn ngữ lập trình. Được chuẩn hóa trong RFC 8259, JSON yêu cầu tuân thủ nghiêm ngặt các quy tắc về chuỗi ký tự, số và cấu trúc dữ liệu. Tuy nhiên, nhiều hệ thống vẫn tạo ra JSON không hợp lệ, gây ra các vấn đề tương thích.

Trong JSON, các ký tự đặc biệt như dấu ngoặc kép hoặc xuống dòng phải được escape. Ví dụ, ký tự xuống dòng phải được biểu diễn bằng '\\n'. Các thư viện chuẩn trong mọi ngôn ngữ đều có khả năng tạo và phân tích JSON hợp lệ. Thế nhưng, một số hệ thống vẫn tạo ra JSON lỗi, hy vọng trình phân tích sẽ chấp nhận chúng.

Khi thử phân tích JSON lỗi bằng Python, JavaScript, Java hay C#, hệ thống đều báo lỗi. Những tài liệu này không phải là JSON hợp lệ. Việc chấp nhận chúng sẽ tạo ra 'nợ kỹ thuật' - các giải pháp tạm thời làm phức tạp hệ thống về lâu dài.

Giải pháp rất đơn giản: từ chối mọi JSON không hợp lệ. Tạo JSON đúng chuẩn rất dễ dàng với các thư viện sẵn có. Lỗi cần được sửa tại nguồn thay vì điều chỉnh hệ thống cho phù hợp. Như Daniel Lemire đã viết trong blog ngày 4/7/2025, chúng ta cần nói không với JSON lỗi để bảo vệ tính tương thích - giá trị cốt lõi của JSON.

Daniel Lemire là giáo sư khoa học máy tính tại Đại học Québec (TÉLUQ). Bài viết đầy đủ có trên blog của ông: https://lemire.me/blog/2025/07/04/just-say-no-to-broken-json/.