ASP.NET MVC で REST API に取り組んでおり、結果のシリアル化された JSON は属性に lowercase_underscore を使用します。
Person
文字列プロパティFirstName
とを持つクラスから、Surname
次のように JSON を取得します。
{
first_name: "Charlie",
surname: "Brown"
}
lowercase_underscore の名前に注意してください。
この変換を自動的に行うために使用するコントラクト リゾルバーは次のとおりです。
public class JsonLowerCaseUnderscoreContractResolver : DefaultContractResolver
{
private Regex regex = new Regex("(?!(^[A-Z]))([A-Z])");
protected override string ResolvePropertyName(string propertyName)
{
return regex.Replace(propertyName, "_$2").ToLower();
}
}
これはすべて正常に機能しますが、Json.NET で逆を実装する方法がわかりません。たとえば、次のように API メソッドを宣言すると、リクエスト本文の着信 JSON を適切なオブジェクトに変換することが認識されます。
public object Put(int id, [FromBody] Person person)