Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 1794|Yanıt: 7

[İpucu] System.Text.Json'un JSON'u manipüle etmesiyle ilgili bazı ipuçları

[Bağlantıyı kopyala]
2024-11-25 08:39:50 tarihinde yayınlandı | | | |
.NET Core 3.1'den önce, nesne serileştirme ve serilikten çıkarma desteği vardı; Newtonsoft.JSON gibi üçüncü taraf paketlere referans gerektiriyorduk ve şimdi .NET zaten JSON işlemleri için yerleşik destek sunuyor. System.Text.Json isim alanı, JavaScript nesne gösterimlerinin (JSON) seri dizilme ve serilikten çıkarılması için işlevsellik sağlar. System.Text.Json kütüphanesi dahildir.NET Core 3.1 ve sonraki çalışma zamanlarıOrta.

JsonSerializerOptions thread safe

GeçersenAynı seçenekJsonSerializerOptions'u tekrar kullanırsanız, her kullandığınızda yeni bir JsonSerializerOptions örneği oluşturmayın. Her çağrı için aynı örneği tekrar kullanın. Bu rehber, özel transformatör için yazdığınız kod için ve JsonSerializer.Serialize veya JsonSerializer.Deserialize çağırdığınızda geçerlidir. Aynı örneği birden fazla iş parçacığında kullanmak güvenlidir. Seçenek örneğindeki metaveri önbelleği iş parçacığı için güvenlidir ve örnek ilk serileştirme veya seri serilemeden sonra değiştirilemez hale gelir.

Referans:Bağlantı girişi görünür.

Serileştirme ve serilikten çıkarma

Kod şöyledir:



ASP.NET Core'da JSON yapılandırmasını kullanın

JSON küresel yapılandırmasını ASP.NET Core'da kullanmak istiyorsanız, yapıcıya aşağıdakıları enjekte edebilirsiniz:

Senaryoları yapılandırmak için web sürümünü kullanın

JsonSerializerDefaults enumeration, JsonSerializerOptions örneği oluşturmak için kullanılabilecek senaryo tabanlı varsayılan serileştirme seçeneklerini belirtir.

Kod şöyledir:




Referans:Bağlantı girişi görünür.





Önceki:Windows Server {xxx}, gerekli zaman aşımında DCOM'a kayıt yapmıyor.
Önümüzdeki:Ön yüz web sayfaları wasm'de işlevleri üç şekilde çalıştırır
 Ev sahibi| 2024-12-18 tarihinde 19:07:36 tarihinde yayınlandı |
JSON dizisinin değerini okumak için JsonNode kullanın

Bazen, sadece JSON dizisinde bir değeri okumamız, yeni bir nesne oluşturmamız ve ardından onu bu nesneye seri dışı hale getirmemiz gerekebilir, bu daha sorunludur, doğrudan JsonNode kullanarak JSON dizisinin bir değerini okuyabilirsiniz, kod şöyledir:



 Ev sahibi| 2024-12-30 tarihinde yayınlandı 13:29:28 |
UTF-8 baytlık dizisi olarak serileştirilmiş (Utf8Bytes)

UTF-8 baytlık bir diziyle serileştirme, string tabanlı bir yaklaşımdan daha önemlidir%5-10 daha hızlı。 Bunun nedeni, baytların (UTF-8) dizelere (UTF-16) dönüştürülmesine gerek olmamasıdır.

UTF-8 baytlık bir diziye serileştirmek için JsonSerializer.SerializeToUtf8Bytes metodunu çağırın:


Bağlantı girişi görünür.
 Ev sahibi| 2025-1-2 09:04:00 tarihinde yayınlandı |
System.Text.Json kullanarak null veya "" olarak dizileri içeren verileri kaldırın, json diziyi bir nesne nesnesine serilikten ayırın; eğer yüzlerce alan varsa ve bunların çoğu null olarak kaydedilmişse, transferi kaydetmek için bu alanlar kaldırılabilir. System.Text.Json, json dizisini System.Text.Json.JsonElement olarak serilikten çıkarır.



Kod şöyledir:



JsonObject, JsonIgnoreCondition.WhenWritingNull saygı göstermez:Bağlantı girişi görünür.
 Ev sahibi| 2025-2-18 13:53:03 tarihinde yayınlandı |
JsonObject kullanarak doğrudan bir nesne oluşturun ve aşağıdaki şekilde gösterildiği gibi bir json dizisi olarak serileştirin:



Kod:

 Ev sahibi| 2025-2-28 09:17:31 tarihinde yayınlandı |
Tarafından [JsonPropertyNameproperty, alanın serileştirme adını özelleştirmek için



 Ev sahibi| 2025-11-19 tarihinde 14:40:03 tarihinde yayınlandı |
JsonNode kullanarak bir Json string collection nesnesi elde edin

Kod:

 Ev sahibi| Yayınlandı4 gün önce |
Dizi nesneleri JSON dizileri halinde serileştirilir



Kod:
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com