我有一個包含兩個客戶端的 API:OldClient 和 newClient。我目前有這個,Startup.cs所以我的 json 回應被序列化為 PascalCase,即根據我所有的首字母大寫的 .net 物件。
services.AddControllers().AddJsonOptions(jsonOptions =>
{
// So json output is like 'SomeId' instead of 'someId':
jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
...
}
OldClient 喜歡這種格式。但是,newClient 確實更喜歡駝峰命名法。
有沒有一種方法可以配置我的應用程式以回應 newClient 請求的 camelCase 和 OldClient 請求的 PascalCase?newClient 可以發送一個標頭來表明它需要駝峰命名法。
uj5u.com熱心網友回復:
你可以在 aspnetcore 的 github 頁面上查看這個問題
在每個控制器的基礎上使用特定 JSON 序列化程式選項的可能性尚未實作。它已移至“.NET 8 規劃”,這意味著它還有很長的路要走。
同時,您可以通過以下方式解決此問題:
ModelBinder對于資料接收和模型系結,您可以通過在 a 中實作IModelBinder介面來創建自定義ModelBinderAttribute,以便利用您特定的 JSON 序列化選項。然后,您可以簡單地將屬性添加到需要它的端點。對于資料回應,您可以簡單地使用:
return new JsonResult([object], [CustomJSONSerializationSettings]);
必須修改這些每個端點是非常煩人的,但它似乎是在 .net 8 中添加該功能之前的唯一方法(如果我們幸運的話)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535014.html
標籤:网站。网json序列化器json序列化.net-7.0
