JSON.NET で JSON を小文字のキャメルケース形式でシリアル化する方法

JSON.NET を使用して、プロパティ名を小文字で始まるキャメルケース形式でシリアル化する方法を紹介します。これは、API レスポンスの標準的なフォーマットとして広く使用されています。

まず、シリアル化設定を定義します。CamelCasePropertyNamesContractResolver を使用することで、オブジェクトのプロパティ名が自動的に小文字のキャメルケースに変換されます。

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

// シリアル化設定の作成
var config = new JsonSerializerSettings
{
    ContractResolver = new CamelCasePropertyNamesContractResolver()
};

// オブジェクトを JSON 文字列にシリアル化
var resultJson = JsonConvert.SerializeObject(dataToSerialize, Formatting.None, config);

この設定を適用しない場合、デフォルトのシリアル化結果は次のようになります。

{
    "StatusCode": 200,
    "Message": "Success",
    "Details": null,
    "Content": {
        "TotalItems": 3,
        "Products": [
            {
                "ProductId": 101,
                "ProductName": "Laptop",
                "Price": 1200.50
            },
            {
                "ProductId": 102,
                "ProductName": "Mouse",
                "Price": 25.00
            },
            {
                "ProductId": 103,
                "ProductName": "Keyboard",
                "Price": 75.00
            }
        ]
    }
}

上記の設定を適用すると、プロパティ名が小文字のキャメルケース形式に変換されます。

{
    "statusCode": 200,
    "message": "Success",
    "details": null,
    "content": {
        "totalItems": 3,
        "products": [
            {
                "productId": 101,
                "productName": "Laptop",
                "price": 1200.50
            },
            {
                "productId": 102,
                "productName": "Mouse",
                "price": 25.00
            },
            {
                "productId": 103,
                "productName": "Keyboard",
                "price": 75.00
            }
        ]
    }
}

ネットワーク通信の効率を考慮して、実際の API レスポンスではフォーマットされていない JSON 文字列が送信されます。

{"statusCode":200,"message":"Success","details":null,"content":{"totalItems":3,"products":[{"productId":101,"productName":"Laptop","price":1200.5},{"productId":102,"productName":"Mouse","price":25},{"productId":103,"productName":"Keyboard","price":75}]}}

この JSON 文字列をオンラインのフォーマッタ(例: https://www.json.cn/)で整形すると、読みやすくなります。

タグ: JSON.NET C# JSON シリアル化

7月2日 22:57 投稿