このためのカスタム契約リゾルバーを作成できます。次のコントラクトリゾルバーは、すべてのキーを小文字に変換します。
public class LowercaseContractResolver : DefaultContractResolver
{
protected override string ResolvePropertyName(string propertyName)
{
return propertyName.ToLower();
}
}
使用法:
var settings = new JsonSerializerSettings();
settings.ContractResolver = new LowercaseContractResolver();
var json = JsonConvert.SerializeObject(authority, Formatting.Indented, settings);
Wilの結果:
{"username":"Mark","apitoken":"xyzABC1234"}
を使用して常にシリアル化したい場合はLowercaseContractResolver
、繰り返し使用しないようにクラスでラップすることを検討してください。
public class LowercaseJsonSerializer
{
private static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
ContractResolver = new LowercaseContractResolver()
};
public static string SerializeObject(object o)
{
return JsonConvert.SerializeObject(o, Formatting.Indented, Settings);
}
public class LowercaseContractResolver : DefaultContractResolver
{
protected override string ResolvePropertyName(string propertyName)
{
return propertyName.ToLower();
}
}
}
これは次のように使用できます:
var json = LowercaseJsonSerializer.SerializeObject(new { Foo = "bar" });
// { "foo": "bar" }
ASP.NET MVC4 / WebAPI
ASP.NET MVC4 / WebAPIを使用している場合はCamelCasePropertyNamesContractResolver
、デフォルトで含まれているNewtonsoft.Jsonライブラリのを使用できます。