이를 위해 사용자 지정 계약 해결자를 만들 수 있습니다. 다음 계약 해결 프로그램은 모든 키를 소문자로 변환합니다.
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 라이브러리를 사용할 수 있습니다 .