Girdi / Çıktı
JSON
json.yaz ve json.oku.
json.yaz sıkışık JSON metni üretir; json.oku\<T\> tip bağlar. Dosya yolu okumaz — önce dosya.oku.
Döngü US1529; nullable olmayan alana JSON null US1541; bozuk JSON US1535.
İlgili konular
Dosya Sistemi · Modeller · Null ve Nullable
Referans
Bu sayfa 4 katalog öğesini kapsar. Aşağıdaki maddeler language-spec, örnekler ve katalog alanlarından üretilmiştir.
json.yaz
Nedir?
json.yaz(değer) US model/değerini sıkışık JSON metin olarak üretir. Özellik adı model alan adıdır; sessiz yeniden adlandırma yoktur.
Ne zaman kullanılır?
Modeli JSON metnine serileştirirken; dosya yolu yazmaz.
Parametreler ve dönüş
json.yaz(değer): metin — eşzamanlı, sıkışık çıktı. Dosya için sonucu dosya.yaz ile yazın. RUNTIME: döngüsel nesne US1529. Desteklenmeyen / tip uyumsuzluğu yüzeyinde US1541 (nullable olmayan null) ve ilgili JSON tanıları.
Kullanım
metinJson: metin = json.yaz(k)Basit örnek
model Kutu { ad: metin n: tamsayı }k: Kutu = @Kutu { ad = "Ali" n = 3 }syaz json.yaz(k)Çıktı
{"ad":"Ali","n":3}Dikkat edilmesi gerekenler
- Dosya yolu yazmaz;
dosya.yazayrıdır. - Döngü → RUNTIME
US1529. ~↔ JSONnullyalnız nullable alanda.- Basit ve nested model derleyicide SUPPORTED.
İlgili konular
Dosya Sistemi · Null ve Nullable
json.oku
Nedir?
json.oku\<T\>(metin) JSON metnini hedef tipe bağlar. Dosya yolu okumaz; dosya için önce dosya.oku kullanın. Katı alan eşlemesi vardır.
Ne zaman kullanılır?
JSON metninden model veya koleksiyon üretmek.
Parametreler ve dönüş
json.oku\<T\>(metin) veya sol tip ile hedef; hedef yoksa SEMANTIC US0855. ~ ↔ JSON null (nullable). RUNTIME: bilinmeyen alan US1527, eksik zorunlu US1528, bozuk JSON US1535, nullable olmayan null US1541, döngü yazmada US1529. İç içe / liste\<model\> v0.2.0 derleyicide SUPPORTED.
Kullanım
k: Kullanıcı = json.oku<Kullanıcı>(metinJson)Basit örnek
model Kutu { ad: metin n: tamsayı }k: Kutu = @Kutu { ad = "Ali" n = 3 }okunan: Kutu = json.oku<Kutu>(json.yaz(k))syaz okunan.adsyaz "{okunan.n}"Çıktı
Ali 3
Geçersiz örnek
model Kutu { ad: metin }k: Kutu = json.oku<Kutu>("{ \"ad\": \"A\", \"fazla\": 1 }")US1527 UnknownJsonField; bozuk metin US1535; nullable olmayan null US1541.
Dikkat edilmesi gerekenler
- Hedef tip zorunlu (yoksa US0855).
- Nested/
liste\<model\>compiler SUPPORTED (v0.2.0). - US1532 yapılandırma dosyası yokluğudur;
json.okudosya API’si değildir.
İlgili konular
JSON basit model
Nedir?
json.yaz / json.oku metin üzerinde çalışır (dosya yolu okumaz). Özellik adı = model alan adı; sessiz yeniden adlandırma yok. Katı eşleme: bilinmeyen alan US1527, eksik zorunlu US1528, bozuk JSON US1535, nullable olmayan null US1541, döngü US1529.
Ne zaman kullanılır?
Düz model ↔ sıkışık JSON metni dönüşümü.
Parametreler ve dönüş
json.yaz(değer): metin — sıkışık, alan sırasını korur. json.oku\<T\>(metin) veya sol tip ile hedef; hedef yoksa US0855. Sayı hedef US tipine göre okunur (önce kayan noktaya çevirip yazılmaz). Eşzamanlı API.
Kullanım
metinJson: metin = json.yaz(k)k: Kullanıcı = json.oku<Kullanıcı>(metinJson)Geçerli örnek
model Kutu { ad: metin : varsayılan("İbrahim") }k: Kutu = json.oku<Kutu>("{}")syaz k.adÇıktı
İbrahim
Geçersiz örnek
model Kutu { ad: metin }k: Kutu = json.oku<Kutu>("{ \"ad\": \"A\", \"fazla\": 1 }")US1527 UnknownJsonField; eksik zorunlu → US1528; json.oku("[]") hedefsiz → US0855.
Dikkat edilmesi gerekenler
- Dosya için
dosya.okusonrajson.oku. ~↔ JSONnullyalnız nullable alanda.- Basit model derleyicide SUPPORTED.
İlgili konular
JSON nested / 'liste<model>'
Nedir?
İç içe model, liste\<primitive\>, liste\<model\> ve iç içe koleksiyon aynı katı JSON kurallarıyla okunur/yazılır. v0.2.0 derleyici SUPPORTED; döngü US1529, nullable olmayan null US1541.
Ne zaman kullanılır?
Adres gibi iç model veya model listesi JSON’a serileştirilirken.
Parametreler ve dönüş
json.yaz / json.oku\<İçModel\> veya json.oku\<liste\<Kişi\>\>(…) — bilinmeyen/eksik alan kuralları iç modelde de geçerli. Recursive shape metadata runtime/compiler yardımcılarıyla paylaşılır.
Kullanım
okunan: Kişi = json.oku<Kişi>(json.yaz(kişi))kişiler: liste<Kişi> = json.oku<liste<Kişi>>("[…]")Basit örnek
model Adres { şehir: metin }model Kişi { ad: metin adres: Adres }kişi: Kişi = @Kişi { ad = "İbrahim" adres = @Adres { şehir = "İstanbul" } }okunan: Kişi = json.oku<Kişi>(json.yaz(kişi))syaz okunan.adres.şehirkişiler: liste<Kişi> = json.oku<liste<Kişi>>("[{\"ad\":\"Ali\",\"adres\":{\"şehir\":\"Ankara\"}}]")syaz "{kişiler.adet}"Çıktı
İstanbul 1
Geçersiz örnek
İç modelde bilinmeyen alan yine US1527; dizi beklenirken nesne US1536 JsonType; nullable olmayan null US1541.
Tanı
US1527 — dizi beklenirken nesne US1536 JsonType
Dikkat edilmesi gerekenler
us derlenested/liste\<model\>yüzeyini SUPPORTED kabul eder (v0.2.0).- System.Text.Json’un tüm davranışları US kuralları değildir.