Игнорировать любой указанный c регистр объекта ответа в. NET core 2.2 WebAPI - PullRequest
0 голосов
/ 09 января 2020

In. NET core Webapi, по умолчанию return json в верблюжьем регистре и может быть отформатирован так, чтобы вернуть титульный регистр. Это нормально. Можно полностью проигнорировать регистр. Значит, возвращаемое имя и значение свойства json должны быть такими, как они возвращаются из службы. Корпус не должен применяться. Возможно ли это? например, если возвращено json имя объекта "jsonname", оно должно вернуть то же самое вместо "jsonName"

1 Ответ

0 голосов
/ 09 января 2020

Вы можете настроить DefaultContractResolver:

public class LowercaseContractResolver : DefaultContractResolver
{
    protected override string ResolvePropertyName(string propertyName)
    {
        return propertyName;
    }
}

Зарегистрируйтесь в Startup.cs для глобальной сериализации:

public void ConfigureServices(IServiceCollection services)
{
    JsonConvert.DefaultSettings = () => new JsonSerializerSettings
    {
        ContractResolver = new LowercaseContractResolver()
    };
    services.AddMvc();
}

Вы можете протестировать, как показано ниже:

[HttpGet]
public ActionResult<string> Get()
{
    var user = new User()
    {
        Id = 1,
        Name = "aa",
        MyAddress = "sad"
    };

    var data = JsonConvert.SerializeObject(user);
    return data;
}

Или вы можете установить для вывода json как показано ниже:

return new JsonResult(user, new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() });
...