CodeBlanks Logo Icon CodeBlanks

JsonSerializerOptions

C# kursu · Orta seviye · Ders 109/116

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

  1. 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.

  2. Ayarı çıktısına eşle

    WriteIndented = true
    Girintili çıktı
    CamelCase
    Deve biçimi
    (varsayılan)
    Sıkışık çıktı
    JsonPropertyName
    Özel anahtar
  3. Options oluştur

    var options = new ____ { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
    Cevabı göster
    var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };

Orta seviye bölümündeki tüm dersler