Go'dan JSON'a Dönüştürücü
Bir Go struct'ı ve composite literal yapıştırın. Temiz JSON alın.
Bu araç ne işe yarar
json:"..." tag'leri olan bir Go struct'ınız ve bir yerde bir composite literal'iniz var (order := Order{...}), ve encoding/json'un üreteceği JSON biçimine ihtiyacınız var. Her ikisini de soldaki editöre yapıştırın ve Dönüştür'e basın. Araç tag'leri okur, omitempty ve - kurallarını uygular, nil pointer'ları işler ve size json.MarshalIndent'in üreteceğiyle aynı JSON'ı verir — böylece go run üzerinden bir tur atmak zorunda kalmazsınız.
Saf metin ikamesiyle değil, gerçek Go marshalling semantiğiyle çalışır. Export edilen alan adları json tag'inin ilk kısmına göre yeniden adlandırılır. omitempty sıfır değerleri (boş string, 0, false, nil, boş slice/map) atar. - tag'i alanı tamamen kaldırır. Embedded (anonim) struct alanları encoding/json'un terfi ettirdiği şekilde terfi ettirilir. time.Time, RFC 8259 uyumlu formatla RFC 3339 string olarak çıkar; byte slice'ları ([]byte) base64'le kodlanır.
Sayısal tipler Go kurallarını izler: float64 hassasiyetini korur, int/int64 sayı olarak kalır, nil pointer ise JSON null olur. Slice'lar JSON array'e dönüşür; nil bir slice de null olur ([] değil), bu Marshal'ın varsayılan davranışıyla aynıdır. map[string]V JSON object'e dönüşür. Birden fazla struct'ı tek seferde yapıştırabilirsiniz — her instance üst seviye bir girdi olarak çıkar.
Nasıl kullanılır
Üç adım. Küçücük bir struct'tan komple bir <code>types.go</code> dosyasına kadar her şeyde çalışır.
Go'nuzu yapıştırın (ya da örneği deneyin)
Struct tanımlarını ve bir composite literal'i (order := Order{...}) soldaki editöre bırakın. Tek struct, embedded alanları olan birden fazla struct veya package seviyesinde bildirim — hepsi olur. Gerçekçi bir başlangıç noktası için Örnek Yükle'ye tıklayın.
package satırınızı ve import'larınızı olduğu gibi bırakın — parser onları görmezden gelir. Struct tag'leri, method receiver'lar ve yorumlar da sorun çıkarmaz. Referans olarak, encoding/json.Marshal dokümantasyonu bu aracın uyduğu her kuralı açıklar. Bir edge case'e çarparsanız, Go kaynak repo'suna da göz atmak işinize yarar.
Dönüştür'e basın
Yeşil Dönüştür düğmesine tıklayın. Araç struct tanımlarını parse eder, composite literal'i çözer, tag kurallarını uygular ve girintili JSON üretir.
JSON'ı kopyalayın
Sağ panel, bir API isteği, test tablosu, config dosyası ya da os.ReadFile ile yüklediğiniz bir fixture için hazır JSON'la dolar.
Gerçekten işe yaradığı yerler
HTTP handler request/response örnekleri
Bir <code>net/http</code> ya da <code>gin</code> handler'ı için request veya response struct'ınız var. Literal'iyle birlikte yapıştırın, curl'le gönderebileceğiniz veya Postman'e yapıştırabileceğiniz bir JSON body'si alın.
Table-driven test fixture'ları
Bir table test'teki struct instance'ını, golden-file testing veya harici araçlar için bağımsız bir JSON dosyasına çevirin.
Kubernetes CRD'leri ve manifest'leri
Bir custom resource ya da controller payload'ını temsil eden Go struct'ını, <code>kubectl apply</code> veya Kubernetes API'sinin kullandığı JSON biçimine çevirin.
Kafka / NATS / gRPC-gateway mesajları
Bir Go mesaj struct'ını, tüm pipeline'ı ayağa kaldırmadan producer testi, örnek payload veya dokümantasyon için JSON'a serialize edin.
Sık sorulan sorular
json struct tag'ini dikkate alıyor mu?
Evet. İlk tag değeri alanı yeniden adlandırır, omitempty sıfır değerleri atar, - ise alanı tamamen dışarıda bırakır. Bu, encoding/json Marshal referansında belgelenen kurallarla aynıdır.
time.Time ve []byte nasıl işleniyor?
time.Time, time.Time.MarshalJSON'la aynı şekilde RFC 3339 olarak formatlanır (örn. "2026-03-14T10:30:00Z"). []byte, standart kütüphanenin varsayılan davranışıyla aynı şekilde JSON string olarak base64'le kodlanır.
Peki ya nil pointer'lar ve nil slice'lar?
nil bir pointer JSON null'a dönüşür. nil bir slice de null'a dönüşür ([]'a değil) — bu Go'nun varsayılanı. Boş bir array istiyorsanız, slice'ı []T{} ile başlatın.
Embedded (anonim) struct alanları terfi ediliyor mu?
Evet. Embedded struct'ın alanları dıştaki object'e düzleştirilir — embedded struct'ın kendi json tag'i yoksa. encoding/json'un uyguladığı kuralların aynısı.
Birden fazla struct içeren bir dosyayı toptan yapıştırabilir miyim?
Evet. Yapıştırdığınız içerikte instance'ı olan her struct tipi, JSON'da kendi girdisi olarak çıkar. İç içe struct tipleri, kullanıldıkları yerde inline olarak açılır.
Kodum bir yerde saklanıyor mu?
Kod dönüştürülmek üzere backend'e gönderilir, kalıcı olarak saklanmaz ve loglanmaz. Her online araçta olduğu gibi, hassas kodu yapıştırmadan önce bir göz atın.
İşinize yarayabilecek diğer araçlar
Go'dan JSON'a, yapbozun yalnızca bir parçası. Onunla iyi giden araçlar: