如果是使用 .NET Core 3 以上版本,System.Text.Json 已經預設包含在裡面,當然也就使用它來做資料繫結了,不過有時候會懷念以前 JSON.NET 所提供的好用特性,這篇介紹如何將 ASP.NET Core 專案中改用 JSON.NET 來做 JSON 資料繫結。

建立好 ASP.NET Core 3.0 以上版本的專案後,直接安裝 Microsoft.AspNetCore.Mvc.NewtonsoftJson 這個 NuGet 套件,這會直接幫你安裝以下相依的套件,當中就包含了 Newtonsoft.Json

Microsoft.AspNetCore.JsonPatch.5.0.0
Microsoft.AspNetCore.Mvc.NewtonsoftJson.5.0.0
Microsoft.CSharp.4.7.0
Newtonsoft.Json.12.0.2
Newtonsoft.Json.Bson.1.0.2

接著我們必須告訴專案的 MVC 框架改用 JSON.NET 來處理資料繫結,不過這裡會根據 ASP.NET Core 版本的不同而作法有一點差異,不過都是去修改 Startup.csConfigureServices() 內的設定,直接參考下面設定:

// .NET Core 2.x 可能會看到這樣
services.AddMvc().AddNewtonsoftJson();
// .NET Core 3.x 則可能會看到這樣
services.AddControllers().AddNewtonsoftJson();
services.AddControllersWithViews().AddNewtonsoftJson();
services.AddRazorPages().AddNewtonsoftJson();

安裝一個套件,修改一行程式碼,簡單幾個動作,重新回到 JSON.NET 的懷抱。

後記

基本上新的專案我還是會使用內建的 System.Text.Json 來處理資料繫結或相關的 JSON 處理,之所有會有這篇是因為要為 這篇做準備。


參考資料:


Poy Chang

Trial and Error