ASP.NET Core WEB API プログラミング

【 ASP.NET WEBAPI 】JSONキーの先頭が小文字になる(CamelCasing)

ASP.NET Core Ver 3以降の仕様


ASP.NET Core のVer 3以降では、WEBAPI MVCのフレームワークでは、オブジェクトをJSONに変換した際、キーの先頭が自動で小文字Camel Casing)になってしまいます。

これはSystem.Text.Json JsonSerializerクラスのシリアライズ/デシリアライズのデフォルト設定によるものです。

例えば、JSON シリアライズの対象となる以下のようなクラスがあったとします。

Mail と Name の各プロパティ名は大文字で設定されています。
しかし、JSON にシリアライズすると先頭文字が小文字になってしまいます。

public class Department
{
    public string Mail{ get; set; }

    public string Name{ get; set; }
}
{"mail":"******@gmail.com", "name":"Tarou"}

JsonSerializerOptions 設定

上記で解説したJSONシリアライズした際にキーの頭文字が小文字になってしまう (Camel Casing) 現象ですが、

JsonSerializerOptions PropertyNamingPolicy 設定を以下のようにProgram.csに記述することで回避することが可能です。

services.AddControllersWithViews().AddJsonOptions(options =>
{
    options.JsonSerializerOptions.PropertyNamingPolicy = null;
});

ASP.NET おすすめ入門講座

3つのWebアプリケーションの開発を通して、ASP.NETについて基礎から学べるおすすめの入門講座がこちら☟

【入門者向け】ASP.NET MVCでWebアプリ開発のノウハウを学ぼう!

icon

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

-ASP.NET Core, WEB API, プログラミング
-, ,