сервисах .NET одной сущности?
Серилизация проходит нормально, но десерилизация требует опции
JsonSerializerOptions { PropertyNameCaseInsensitive = true }
Проблема в том, что при серилизации проперти трансформируется в pascalCase, а десерелизация ожидает их найти в json в виде CammelCase.
Как избежать добавления этой опции в каждом десерилизаторе System.Text.Json.JsonSerializer?
Тебе скорее всего нужна опция PropertyNamingPolicy = JsonNamingPolicy.CamelCase Можно разметить dto с помощью атрибута JsonPropertyName в качестве альтернативного варианта, но правильнее это использовать настроенный JsonSerializerOptions
Newtonsoft.Json
Можешь поставить над структурой, на которую мапишь десериализацию [JsonProperty()]
Уже думал над этим, но указывать над каждым пропсом JsonPropertyName требует очень много строк кода. Использование опции в серилизаторе в разы меньше.
Вот как раз его и заменили на коробочный System.Text.Json.JsonSerializer🙃
Не вижу проблем при использовании отдельных инстансов JsonSerializerOptions У меня typed http clients и в каждом классе-клиенте свой JsonSerializerOptions
Если нужно поменять что-то в серилизации, нужно каждый JsonSerializerOptions править?
Тебе не нужно менять что-то в сериализации. Потому что после того как один сервис опубликовал контракт, он обязан его соблюдать и вносить обратно-совместимые изменения.
Обсуждают сегодня