System.Text.Json: десериализация JSON с автоматическим приведениемC#

Место общения программистов C#
Ответить
Гость
 System.Text.Json: десериализация JSON с автоматическим приведением

Сообщение Гость »


Используя новый System.Text.Json JsonSerializer .Net Core 3, как автоматически преобразовать типы (например, int в строку и строку в int)? Например, это вызывает исключение, поскольку id в JSON является числовым, а Product.Id в C# ожидает строку:

публичный класс HomeController: Контроллер { публичный индекс IActionResult() { var json = @"{""id"":1,""name"":""Foo""}"; var o = JsonSerializer.Deserialize(json, новый JsonSerializerOptions { PropertyNameCaseInsensitivity = true, }); вернуть просмотр(); } } Продукт общественного класса { публичный идентификатор строки {get; набор; } общедоступная строка Имя {get; набор; } } Json.Net компании Newtonsoft прекрасно справился с этой задачей. Не имело значения, передавали ли вы числовое значение, в то время как C# ожидал строку (или наоборот), все было десериализовано, как и ожидалось. Как вы справитесь с этим с помощью System.Text.Json, если у вас нет контроля над форматом типа, передаваемым как JSON?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»