Go 1.27 Rilis API JSON Baru: encoding/json/v2
Judul asli: A new Go API for JSON
Mengapa Ini Penting
Perbaikan keamanan dan kepatuhan standar RFC pada paket JSON inti Go berdampak luas bagi jutaan layanan backend.
Go 1.27 memperkenalkan encoding/json/v2 dan encoding/json/jsontext sebagai API JSON stabil, menggantikan encoding/json yang telah ada sejak sebelum Go 1.0.
Tim Go secara resmi merilis paket encoding/json/v2 dan encoding/json/jsontext dalam Go 1.27 setelah melalui fase eksperimental dan pengumpulan umpan balik. API baru ini hadir untuk mengatasi berbagai kelemahan yang telah lama ada di encoding/json, paket JSON standar Go yang sudah berumur lebih dari 15 tahun.
Salah satu masalah utama adalah penanganan sintaks JSON yang tidak tepat. encoding/json lama menerima UTF-8 tidak valid, padahal RFC 8259 sebagai standar internet terbaru mewajibkan UTF-8 valid. Selain itu, paket lama juga menerima objek JSON dengan nama anggota duplikat — celah yang pernah dieksploitasi nyata, termasuk dalam CVE-2017-12635. API baru memperketat perilaku ini secara default, menolak input ambigu untuk mengurangi risiko interpretasi berbeda antar implementasi.
Pengembangan melibatkan tujuh kontributor dari tim Go, termasuk Michael Pratt, Joe Tsai, dan Damien Neil. Paket baru ini dirancang agar lebih ketat dalam validasi, lebih konsisten dalam perilaku marshaling dan unmarshaling, serta tetap mempertahankan fleksibilitas kustomisasi representasi tipe Go ke JSON.