CodeBlanks Logo Icon CodeBlanks

JsonPropertyName

C# kursu · Orta seviye · Ders 108/116

[JsonPropertyName] ile JSON anahtar adlarını özelleştirmeyi öğrenirsin.

JsonPropertyName ile anahtar adı

Varsayılan olarak JsonSerializer, özellik adını olduğu gibi kullanır: Name özelliği "Name" anahtarına çevrilir. [JsonPropertyName] özniteliği ile bu adı değiştirebilirsin.

Örnek: [JsonPropertyName("ad")] public string Name { get; set; }. Artık serileştirmede "ad" anahtarı kullanılır. Bu, Türkçe ya da kısa anahtarlar istediğinde, ya da var olan bir veri biçimiyle uyum sağlaman gerektiğinde yararlıdır. Öznitelik için using System.Text.Json.Serialization; gerekir.

Serialization ad alanı

[JsonPropertyName] özniteliği System.Text.Json.Serialization ad alanındadır. Kullanmak için using System.Text.Json.Serialization; eklenir. Bu ad alanı, serileştirme davranışını özelleştiren tüm öznitelikleri içerir.

Başka yararlı öznitelikler: [JsonIgnore] bir özelliği serileştirmeden dışlar; [JsonConverter] özel dönüştürücü bağlar. Bu öznitelikler sınıf bildiriminin üstüne, özelliğin hemen öncesine yazılır.

Uygulama Anahtar adlarını özelleştir

Aşağıdaki Person sınıfında Name özelliğine [JsonPropertyName("ad")], Age özelliğine [JsonPropertyName("yas")] özniteliğini ekle. Sonra Main içinde bir örnek oluştur, JsonSerializer.Serialize ile metne çevir ve yazdır.

Örnek çözümü göster
Name özelliğinin üstüne [JsonPropertyName("ad")] yaz, Age özelliğinin üstüne [JsonPropertyName("yas")] yaz. Main içinde string text = JsonSerializer.Serialize(p); Console.WriteLine(text); ekle.
Örnek çözüm:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;

class Person
{
    [JsonPropertyName("ad")]
    public string Name { get; set; }

    [JsonPropertyName("yas")]
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        var p = new Person { Name = "Ayşe", Age = 30 };
        string text = JsonSerializer.Serialize(p);
        Console.WriteLine(text);
    }
}

Kendini test et

  1. Özniteliği çıktısına eşle

    [JsonPropertyName("ad")]
    "ad":"Ayşe"
    [JsonPropertyName("yas")]
    "yas":30
    (özniteliksiz)
    "Name":"Ayşe"
    [JsonPropertyName("id")]
    "id":1
  2. Özniteliği tamamla

    [____("ad")]
    public string Name { get; set; }
    Cevabı göster
    [JsonPropertyName("ad")]
    public string Name { get; set; }
  3. JsonPropertyName ne yapar?

    • Özelliği serileştirmeden dışlar
    • Özelliğin anahtar adını değiştirir
    • Özelliğin türünü değiştirir
    • Özelliği gizler
    Cevabı göster

    Özelliği gizler — Doğru. JsonPropertyName, özelliğin metindeki anahtar adını değiştirir.

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