ASP.Net Core'da JSON serileştirme / seriyi kaldırma


132

Hayır olmadığına göre JavaScriptSerializer, bunun üstesinden gelmek için hangi yerel uygulama kullanılabilir?

Fark ettim JsonResultve bununla verileri JSON olarak biçimlendirebilirim, ancak seriyi nasıl kaldırırım?

Veya belki de bazı bağımlılıkları özlüyorum project.json?

Yanıtlar:


235

Kullanabilirsiniz Newtonsoft.Json, bu Microsoft.AspNet.Mvc.ModelBindingbir bağımlılığı olan Microsoft.AspNet.Mvc. Yani project.json dosyanıza bir bağımlılık eklemenize gerek yok.

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

Bir WebAPI denetleyicisi kullanarak JSON ile uğraşmanıza gerek olmadığını unutmayın.

ASP.Net Core 3.0'ı GÜNCELLE

Json.NET , ASP.NET Core 3.0 paylaşılan çerçevesinden kaldırılmıştır.

Yeni JSON serileştirici katmanlarını yüksek performanslı Utf8JsonReaderve Utf8JsonWriter. JSON'daki nesneleri seriyi kaldırır ve nesneleri JSON'a serileştirir. Bellek ayırmaları minimum düzeyde tutulur ve JSON'u Stream ile eşzamansız olarak okuma ve yazma desteği içerir.

Başlamak için ad alanında JsonSerializersınıfı kullanın System.Text.Json.Serialization. Bilgi ve örnekler için belgelere bakın .

Json.NET'i bir ASP.NET Core 3.0 projesinde kullanmak için:

    services.AddMvc()
        .AddNewtonsoftJson();

Okuma Json.NET desteği içinde 2.2 Önizleme 2 3.0 için ASP.NET Core Taşıyın fazla bilgi için.


Artık AspNetCore.Mcv'nin Newtonsoft.JSON'a bağımlılığı yoktur. Serileştirme için kullanılan Microsoft.AspNet.Mvc.Formatters.Json derlemesi.
Roman Pokrovskij

9
@RomanPokrovskij, yanlış,: Microsoft.AspNetCore.Mvc.Formatters.Jsonbir bağımlılığı vardır Microsoft.AspNetCore.JsonPatchbir bağımlılığı var ki Newtonsoft.Json9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json , nuget.org/packages/Microsoft.AspNetCore.JsonPatch
Mars gelen Agua

Belirli bir sınıfa göre seri durumdan çıkarmak için JsonConvert.DeserializeObject <YourClass> (json) da kullanabilirsiniz.
Nuno Ribeiro

14

.net çekirdeği

using System.Text.Json;

Serileştirmek için

var jsonStr = JsonSerializer.Serialize(MyObject)

Deserialize

var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);

Özellikleri ve boş değerleri hariç tutma hakkında daha fazla bilgi için Bu Microsoft tarafına bakın


json'ı dinamik türe nasıl kaldıracağınızı biliyor musunuz?
zolty13
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.