Pracuję nad interfejsem API REST w środowisku ASP.NET MVC, w którym wynikowy serializowany JSON korzysta z atrybutów o wartości smallcase_underscore.Niestandardowy rezolwer Json.NET dla podkreślenia małych liter w CamelCase
z klasy Person
o właściwościach smyczkowych FirstName
i Surname
, otrzymuję JSON następująco:
{
first_name: "Charlie",
surname: "Brown"
}
Zanotuj nazwy lowercase_underscore.
Program rozpoznawania kontrakt używam to zrobić konwersję automatycznie dla mnie jest:
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();
}
}
To wszystko działa dobrze, ale nie wiem jak zaimplementować odwróconych Json.NET. Tak, że na przykład, mogę zadeklarować metodę API następująco, i wie do konwersji przychodzącego JSON w organizmie żądanie do odpowiedniego obiektu:
public object Put(int id, [FromBody] Person person)