JSON Etiketleri
Serileştirmeyi denetleyin
JSON Etiketleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
JSON Etiketleri Serileştirmeyi Denetler
encoding/json paketi, yapıları JSON'a ve JSON'dan dönüştürürken anahtar adlarına ve kurallara karar vermek için json etiketlerini kullanır.
Varsayılan Field Adları
Etiketler olmadan JSON anahtarları, büyük-küçük harf kullanımı da dahil olmak üzere dışa aktarılmış alan adlarıyla tam olarak eşleşir.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string
Age int
}
func main() {
b, _ := json.Marshal(User{"Ann", 30})
fmt.Println(string(b))
}Anahtarları Yeniden Adlandırma
Bir json etiketi, çıktıdaki anahtar adını değiştirir. Burada Name, küçük harfli name olur.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
Age int "json:\"age\""
}
func main() {
b, _ := json.Marshal(User{"Ann", 30})
fmt.Println(string(b))
}omitempty Seçeneği
Bir alan sıfır değerini (boş dize, 0, nil vb.) taşıdığında onu çıktıdan atlamak için ,omitempty ekleyiniz.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
Email string "json:\"email,omitempty\""
}
func main() {
b, _ := json.Marshal(User{Name: "Ann"})
fmt.Println(string(b))
}Bir Field'ı Yok Sayma
- etiketi, kodlayıcıya alanı tamamen atlamasını söyler; bu, parolalar gibi gizli bilgiler için kullanışlıdır.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
Password string "json:\"-\""
}
func main() {
b, _ := json.Marshal(User{"Ann", "secret"})
fmt.Println(string(b))
}Etiketlerle JSON'dan Çözme
Etiketler her iki yönde de çalışır. JSON kodunu çözerken etiket, hangi JSON anahtarının hangi alanı dolduracağını kod çözücüye bildirir.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
}
func main() {
var u User
json.Unmarshal([]byte("{\"name\":\"Bob\"}"), &u)
fmt.Println(u.Name)
}Büyük-Küçük Harfe Duyarsız Eşleştirme
Serileştirmeyi çözerken Go, yedek olarak JSON anahtarlarını etiketlerle büyük-küçük harfe duyarsız biçimde eşleştirir. Yine de etiketleri açıkça tanımlamak güvenli ve anlaşılır seçimdir.
Dize Seçeneği
,string seçeneği, sayısal veya boole bir alanı JSON dizesi olarak kodlar. Sayıların tırnak içine alınmasını bekleyen sistemler için kullanışlıdır.
package main
import (
"encoding/json"
"fmt"
)
type Item struct {
ID int "json:\"id,string\""
}
func main() {
b, _ := json.Marshal(Item{ID: 42})
fmt.Println(string(b))
}Seçenekleri Birleştirme
Bir adı seçeneklerle birleştirebilirsiniz: json:"email,omitempty". Önce ad, ardından virgülle ayrılmış seçenekler gelir.
Dışa Aktarılmamış Alanlar Atlanır
Yalnızca dışa aktarılmış (büyük harfle başlayan) alanlar serileştirilir. Küçük harfli bir alan, hangi etikete sahip olursa olsun encoding/json tarafından görünmez.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
age int
}
func main() {
b, _ := json.Marshal(User{Name: "Ann", age: 30})
fmt.Println(string(b))
}Biçimlendirilmiş Çıktı
json.MarshalIndent, JSON'ı girintilerle biçimlendirir; etiketlere uymaya devam ederken okunabilir günlükler için kullanışlıdır.
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string "json:\"name\""
}
func main() {
b, _ := json.MarshalIndent(User{"Ann"}, "", " ")
fmt.Println(string(b))
}Hızlı Kontrol
json etiketindeki ,omitempty seçeneği ne yapar?
Özet
JSON etiketleri serileştirmeyi kontrol eder:
- Anahtarları
json:"name"ile yeniden adlandırır ,omitemptysıfır değerleri atlar-bir alanı yok sayar;,stringsayıları tırnak içine alır- Yalnızca dışa aktarılan alanlar kodlanır
Sıkça Sorulan Sorular
“JSON Etiketleri” dersi ücretsiz mi?
Evet — “JSON Etiketleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“JSON Etiketleri” dersinde ne öğreneceğim?
Serileştirmeyi denetleyin Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“JSON Etiketleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.