Pengembang / JSON
JSON ke Struct Go
Tempel sampel JSON untuk mendapatkan definisi struct Go dengan nama field yang diekspor, initialism sesuai linter Go, dan tag json yang siap ditempel ke kode Anda.
JSON ke Struct Go: Konverter membaca JSON di browser Anda dan menulis satu struct untuk setiap objek. Key diubah menjadi nama CamelCase yang diekspor, dengan initialism seperti ID, URL, dan HTTP dalam huruf kapital, sesuai rekomendasi golint. Setiap field tetap menyimpan key aslinya dalam tag json, dengan format seperti yang dihasilkan gofmt. Objek dalam array digabungkan, sehingga key yang tidak ada pada sebagian objek mendapat omitempty dan key yang kadang bernilai null menjadi pointer. Bilangan bulat menjadi int64, kecuali ada desimal pada posisi yang sama, sehingga tipenya menjadi float64. Berjalan 100% lokal di browser Anda tanpa upload file ke server.
- Kategori
- Tools developer
- Dijalankan
- Di browser Anda
- Biaya
- Gratis · tanpa daftar
- Ketersediaan
- Siap digunakan
Berjalan sepenuhnya di browser Anda
Go
type User struct {
ID int64 `json:"id"`
UserName string `json:"user_name"`
AvatarURL string `json:"avatar_url"`
Score float64 `json:"score"`
Tags []string `json:"tags"`
Address Address `json:"address"`
}
type Address struct {
City string `json:"city"`
ZipCode string `json:"zip_code"`
}Key yang tidak ada pada beberapa objek dalam array akan diberi omitempty; key yang terkadang bernilai null menjadi pointer. Periksa tipenya berdasarkan dokumentasi API Anda: contoh hanya menampilkan data yang dikandungnya.
Dari sampel menjadi tipe
Go mendekode JSON menjadi struct dengan encoding/json, yang mencocokkan setiap key dengan field berdasarkan tag json-nya, atau berdasarkan nama tanpa membedakan huruf besar-kecil jika tidak ada tag. Hanya field yang diekspor, yaitu yang diawali huruf kapital, yang akan diisi. Karena itu, setiap field di sini diawali huruf kapital dan tetap menggunakan key asli dalam tag-nya.
Satu sampel hanya menunjukkan isi yang dimilikinya. Daftar pengguna yang salah satunya tidak memiliki email memberi tahu converter bahwa email bersifat opsional; satu objek saja tidak bisa menunjukkan hal itu. Jika tersedia, tempelkan beberapa objek yang representatif dalam sebuah array, lalu periksa hasilnya dengan dokumentasi API. JSON formatter membantu melihat struktur response yang panjang terlebih dahulu.
Bahasa dan schema lainnya
Sampel yang sama dapat diubah menjadi interface TypeScript dengan converter JSON to TypeScript, untuk front end yang membaca API yang sama, atau menjadi JSON Schema untuk memvalidasi payload di batas sistem.
Cara menggunakannya
- Tempel objek atau array JSON, misalnya respons API.
- Beri nama tipe tingkat teratas, lalu pilih struct terpisah atau bertingkat.
- Salin kode Go.
Privasi & batasan
JSON Anda dikonversi di browser dan tidak pernah di-upload.
Alat terkait
Pertanyaan umum
Mengapa user_id disebut UserID, bukan UserId?
Gaya Go menulis initialism dalam satu bentuk kapitalisasi, seperti UserID, APIKey, dan AvatarURL. Konverter menggunakan daftar initialism dari golint, linter yang memopulerkan aturan ini.
Kapan sebuah field mendapat omitempty atau pointer?
Jika sampelnya berupa array objek dan sebuah key tidak ada pada sebagian objek, field tersebut mendapat omitempty, sehingga saat marshalling field itu tidak disertakan jika kosong. Jika sebuah key bernilai null pada sebagian objek, field tersebut menjadi pointer, sehingga nil dapat mewakili null. Anda juga dapat menambahkan omitempty ke setiap field.
Mengapa int64 dan float64?
JSON hanya memiliki satu tipe angka. Nilai yang ditulis tanpa titik desimal menjadi int64, sedangkan nilai yang memiliki pecahan menjadi float64. Jika ID mungkin melebihi 2^53 atau sebenarnya adalah string yang menyamar sebagai angka, ubah tipenya secara manual: sampel hanya menampilkan nilai yang ada di dalamnya.
Apa yang terjadi pada array null atau kosong?
Jika tidak ada informasi yang dapat digunakan, field yang selalu bernilai null atau berupa array kosong mendapat tipe any (interface{}), yang dapat menerima nilai apa pun. Ganti dengan tipe sebenarnya jika Anda sudah mengetahuinya.
Alat gratis · berjalan di browser anda · tanpa perlu akun