C#
JsonPropertyName
[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
-
Özniteliği çıktısına eşle
- [JsonPropertyName("ad")]
- "ad":"Ayşe"
- [JsonPropertyName("yas")]
- "yas":30
- (özniteliksiz)
- "Name":"Ayşe"
- [JsonPropertyName("id")]
- "id":1
-
Özniteliği tamamla
[____("ad")]
public string Name { get; set; }
Cevabı göster
[JsonPropertyName("ad")]
public string Name { get; set; }
-
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.
Sıradaki ders: JsonSerializerOptions