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/)で整形すると、読みやすくなります。