JsonSerializerOptions
JsonSerializerOptions ile girintileme ve adlandırma politikası öğrenirsin.
JsonSerializerOptions ile biçim
JsonSerializerOptions sınıfı, serileştirme davranışını özelleştirir. İki yaygın ayar: WriteIndented = true çıktıyı girintili okunaklı yapar; PropertyNamingPolicy = JsonNamingPolicy.CamelCase tüm anahtarları deve biçimine çevirir.
Kullanım: var options = new JsonSerializerOptions { WriteIndented = true }; ve JsonSerializer.Serialize(p, options);. Ayarları bir kez yapıp her çağrıya geçmek, tutarlı biçim sağlar.
CamelCase adlandırma politikası
JsonNamingPolicy.CamelCase, tüm anahtar adlarını deve biçimine çevirir: ilk harf küçük, sonraki sözcük başları büyük. PersonName → personName, Age → age.
Web API'lerinde bu biçim yaygındır. Kullanım: var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };. Bunu yaparsan [JsonPropertyName] özniteliği yoksa tüm özellikler deve biçimine uyarlanır.
Uygulama CamelCase ile serileştir
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; ile ayar oluştur. Sonra JsonSerializer.Serialize(p, options) ile Person örneğini serileştir ve yazdır. Beklenen çıktı: deve biçiminde anahtarlar.
Örnek çözümü göster
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; ile ayarı oluştur, string text = JsonSerializer.Serialize(p, options); ile serileştir, Console.WriteLine(text); ile yazdır.
Örnek çözüm:
using System;
using System.Text.Json;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
var p = new Person { Name = "Ayşe", Age = 30 };
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
string text = JsonSerializer.Serialize(p, options);
Console.WriteLine(text);
}
}
Kendini test et
-
WriteIndented = true ne yapar?
- Anahtarları küçük harf yapar
- Çıktıyı girintili ve okunaklı yapar
- Özellikleri gizler
- Dosyaya yazar
Cevabı göster
Çıktıyı girintili ve okunaklı yapar — Doğru. WriteIndented = true çıktıyı girintili ve okunaklı yapar; satır başları ve boşluklar ekler.
-
Ayarı çıktısına eşle
- WriteIndented = true
- Girintili çıktı
- CamelCase
- Deve biçimi
- (varsayılan)
- Sıkışık çıktı
- JsonPropertyName
- Özel anahtar
-
Options oluştur
var options = new ____ { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };Cevabı göster
var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };