ASP.Net CoreでのJSONシリアル化/逆シリアル化


131

がないためJavaScriptSerializer、これを処理するためにどのネイティブ実装を使用できますか?

私は気づきJsonResult、これでデータをJSONにフォーマットできますが、どのようにデシリアライズしますか?

それとも、いくつかの依存関係が不足していproject.jsonますか?

回答:


235

を使用できますがNewtonsoft.JsonMicrosoft.AspNet.Mvc.ModelBindingこれはの依存関係ですMicrosoft.AspNet.Mvc。したがって、project.jsonに依存関係を追加する必要はありません。

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

WebAPIコントローラを使用すると、JSONを処理する必要がないことに注意してください。

ASP.Net Core 3.0の更新

Json.NETはASP.NET Core 3.0共有フレームワークから削除されました。

新しいJSONシリアライザーレイヤーを高性能Utf8JsonReaderおよびの上に使用できますUtf8JsonWriter。オブジェクトをJSONから逆シリアル化し、オブジェクトをJSONにシリアル化します。メモリの割り当ては最小限に抑えられ、JSONとStreamを非同期で読み書きするためのサポートが含まれています。

開始するにJsonSerializerは、System.Text.Json.Serialization名前空間のクラスを使用します。情報とサンプルについては、ドキュメントを参照してください。

ASP.NET Core 3.0プロジェクトでJson.NETを使用するには:

    services.AddMvc()
        .AddNewtonsoftJson();

詳細について、ASP.NET Core 2.2から3.0 Preview 2への移行でのJson.NETサポートを参照してください。


現在、AspNetCore.McvはNewtonsoft.JSONに依存していません。シリアル化に使用されるMicrosoft.AspNet.Mvc.Formatters.Jsonアセンブリ。
Roman Pokrovskij

9
@RomanPokrovskij、間違っている、:Microsoft.AspNetCore.Mvc.Formatters.Jsonに依存持ちMicrosoft.AspNetCore.JsonPatchに依存持っているNewtonsoft.Json9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Jsonnuget.org/packages/Microsoft.AspNetCore.JsonPatchを
火星からアグアを

JsonConvert.DeserializeObject <YourClass>(json)を使用して、特定のクラスに逆シリアル化することもできます。
ヌーノリベイロ

14

.netコア

using System.Text.Json;

シリアル化するには

var jsonStr = JsonSerializer.Serialize(MyObject)

逆シリアル化

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

プロパティとnullの除外の詳細については、こちらのMicrosoft側をご覧ください。


jsonを動的型に逆シリアル化する方法を知っていますか?
zolty13
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.