ОБНОВЛЕНИЕ: Если вы хотите увидеть, как это поведение реализовано для System.Text.Json.JsonSerializer
, перейдите на открытый GitHubвыпуск указал Крис Юнгман и взвесил.
Вместо этого:
JsonSerializerOptions options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
// etc.
};
JsonSerializer.Deserialize<SomeObject>(someJsonString, options);
Я бы хотелчтобы сделать что-то вроде этого:
// This property is a pleasant fiction
JsonSerializer.DefaultSettings = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
// etc.
};
// This uses my options
JsonSerializer.Deserialize<SomeObject>(someJsonString);
// And somewhere else in the same codebase...
// This also uses my options
JsonSerializer.Deserialize<SomeOtherObject>(someOtherJsonString);
Надежда состоит в том, чтобы не пропустить экземпляр JsonSerializerOptions
для наших наиболее распространенных случаев и переопределить исключение, а не правило.
Как указано в в этом вопросе , это полезная функция Json.Net. Я посмотрел в документации для System.Text.Json
, а также этого репозитория GitHub для Core. И этот .
Похоже, что нет аналога для управления значениями по умолчанию для сериализации JSON в Core-3. Или я это пропускаю?