キャメルケースの命名規則を使用して、クラスをシリアル化および逆シリアル化する必要があります。述べたようにJsonConvert.SerializeObject(object, settings)
オーバーロードを使用できることを知っています ここ :
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var json = JsonConvert.SerializeObject(product, serializerSettings);
シリアル化設定をオーバーライドする必要がないように、(属性を介して)クラスレベルで同じ構成を適用する方法はありますか?
カスタムコンバーター と書くこともできますが、それはそのような単純なことにはやり過ぎのように見えます。
Json.NET 9.0.1以降を使用している場合は、NamingStrategyType
のJsonObjectAttribute
プロパティを使用して、目的を達成できます。引数をNamingStrategy
のコンストラクターに渡す必要がある場合は、NamingStrategyParameters
プロパティで引数を指定します。以下は、キャメルケースの命名戦略でクラスを指定する方法の例です。
[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class Foo
{
public string Bar;
}