JSON ke Go adalah proses mengonversi data dalam format JSON secara otomatis ke definisi tipe struct bahasa Go. JSON adalah format pertukaran data yang paling umum dalam API REST, file konfigurasi, antrean pesan dan log, sedangkan Go adalah bahasa bertipe kuat; selama pengembangan, struktur dinamis JSON sering perlu dipetakan ke struct sebelum deserialisasi dengan encoding/json. Menulis struct secara manual, terutama objek bersarang, dengan mudah menyebabkan bidang yang hilang atau tipe yang salah; alat ini bertujuan untuk mengotomatiskan pekerjaan berulang.
Struct Go adalah tipe data komposit, dideklarasikan dengan `type Name struct { ... }`. Setiap bidang terdiri dari nama dan tipe; nama bidang harus dimulai dengan huruf kapital agar dapat diakses oleh paket lain, yang disebut 'identifier yang diekspor'. Alat secara otomatis mengonversi nama bidang JSON ke nama bidang yang diekspor PascalCase, mis. `user_name` memetakan ke `UserName`, dengan kunci asli dipertahankan dalam tag json.
Konversi inti alat ini dilakukan oleh Web Worker jsonFormat di browser, memanggil renderer Go quicktype-core dengan opsi `just-types` dan `no-comments`. Seluruh aliran tidak bergantung pada layanan backend: JSON input diparsing secara lokal, tipe diinferensikan, kode Go dihasilkan, akhirnya disajikan di editor kanan.
Inferensi tipe mengikuti pemetaan konvensional JSON ke Go: string memetakan ke `string`, boolean ke `bool`, bilangan bulat ke `int64`, float ke `float64`, array ke slice `[]T`, objek ke struct independen, `null` ke `interface{}`. Objek bersarang diproses secara rekursif, menjaga hierarki yang jelas.
Dibandingkan dengan penulisan manual, kode yang dihasilkan alat adalah 'draf pertama yang dapat dijalankan'. Pengembang biasanya hanya perlu menyesuaikan nama tipe akar, nama paket, presisi tipe bidang (mis. int64 ke int) dan apakah akan menggunakan tipe pointer, sebelum ditempatkan dalam proyek Go yang sebenarnya. Dikombinasikan dengan salin satu klik dan unduh model.go, pekerjaan berulang dalam fase integrasi dan pemodelan berkurang secara signifikan.