Geliştirici / JSON
JSON'dan Go Struct'a
Bir JSON örneği yapıştırın; dışa aktarılan alan adları, Go'nun linter'larının beklediği kısaltmalar ve json etiketleriyle, kodunuza yapıştırmaya hazır Go struct tanımları alın.
JSON'dan Go Struct'a: Dönüştürücü, tarayıcıda JSON'u okur ve her nesne için bir struct yazar. Anahtarlar, golint'in önerdiği şekilde ID, URL ve HTTP gibi kısaltmaları büyük harflerle yazılmış dışa aktarılan CamelCase adlarına dönüşür. Her alan, özgün anahtarını bir json etiketinde korur ve kod, gofmt'ın biçimlendireceği şekilde düzenlenir. Bir dizideki nesneler birleştirilir; bu nedenle bazı nesnelerde eksik olan bir anahtara omitempty eklenir ve bazen null olan bir anahtar işaretçiye dönüştürülür. Aynı konumda ondalık sayı görülmediği sürece tam sayılar int64 olur; ondalık sayı görülürse float64 kullanılır. Sunucuya hiçbir dosya yüklenmeden tarayıcınızda %100 yerel olarak çalışır.
- Kategori
- Geliştirici araçları
- Çalıştırma sayısı
- Tarayıcınızda
- Maliyet
- Ücretsiz · kayıt gerekmez
- Kullanılabilirlik
- Kullanıma hazır
Tamamen tarayıcınızda çalışır
Oluşturun
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"`
}Bir dizideki bazı nesnelerde bulunmayan anahtarlara omitempty eklenir; bazen null olan anahtarlar işaretçiye dönüştürülür. Türleri API'nizin belgeleriyle karşılaştırın: örnek yalnızca içerdiği değerleri gösterir.
Örnekten türe ulaşmak
Go, JSON verisini encoding/json ile struct'lara çözümler. Her anahtarı json etiketiyle bir alana eşleştirir; etiket yoksa büyük-küçük harf farkını göz ardı ederek ada göre eşleştirir. Yalnızca büyük harfle başlayan dışa aktarılmış alanlar doldurulur; bu nedenle buradaki her alan büyük harfle yazılır ve etiketinde özgün anahtarını korur.
Bir örnek yalnızca içerdiği şeyleri gösterir. Kullanıcılardan birinin email adresinin eksik olduğu bir liste, dönüştürücüye email alanının isteğe bağlı olduğunu anlatır; tek bir nesne bunu anlatamaz. Birden fazla temsili nesneniz varsa bunları bir dizi içinde yapıştırın ve sonucu API belgeleriyle karşılaştırın. JSON biçimlendirici, uzun bir yanıtın yapısını önce gözden geçirmenize yardımcı olur.
Diğer diller ve şemalar
Aynı örnek, aynı API'yi okuyan bir ön yüz için JSON to TypeScript dönüştürücüsüyle TypeScript arayüzlerine veya sınırda payload'ları doğrulamak için bir JSON Schema şemasına dönüştürülebilir.
Nasıl kullanılır?
- API yanıtı gibi bir JSON nesnesi veya dizisi yapıştırın.
- Üst düzey türe ad verin ve ayrı ya da iç içe struct'ları seçin.
- Go kodunu kopyalayın.
Gizlilik ve sınırlamalar
JSON'unuz tarayıcıda dönüştürülür ve hiçbir zaman yüklenmez.
İlgili araçlar
Sık sorulan sorular
user_id neden UserID olarak adlandırılıyor da UserId olarak adlandırılmıyor?
Go stili, kısaltmaları tek bir büyük-küçük harf düzeninde yazar: UserID, APIKey ve AvatarURL. Dönüştürücü, bu kuralı yaygınlaştıran linter golint'in kısaltma listesini kullanır.
Bir alan ne zaman omitempty veya işaretçi alır?
Örnek bir nesne dizisiyse ve bazı nesnelerde bir anahtar eksikse alana omitempty eklenir; böylece serileştirme sırasında alan boş olduğunda dışarıda bırakılır. Bazı nesnelerde bir anahtar null ise alan işaretçiye dönüştürülür; böylece nil, null değerini temsil edebilir. İsterseniz her alana omitempty de ekleyebilirsiniz.
Neden int64 ve float64 kullanılıyor?
JSON'da tek bir sayı türü vardır. Ondalık noktası olmadan yazılan bir değer int64, kesirli bir değer ise float64 olur. Bir ID 2^53 değerini aşabiliyorsa veya aslında kılık değiştirmiş bir metinse türü elle değiştirin: bir örnek yalnızca içerdiği değerleri gösterir.
null veya boş dizilere ne olur?
Yeterli bilgi olmadığında, her zaman null olan bir alan veya boş bir dizi any (interface{}) türünü alır; bu tür her şeyi kabul eder. Gerçek türü öğrendiğinizde bunu değiştirin.
Ücretsiz araç · tarayıcınızda kez çalıştırma · hesap gerekmez