Можно ли десериализовать Json.Number или Json.String в строку без использования специального преобразователя?C#

Место общения программистов C#
Ответить
Anonymous
 Можно ли десериализовать Json.Number или Json.String в строку без использования специального преобразователя?

Сообщение Anonymous »

Я пишу сервис для использования JSON, который не могу контролировать. Одно свойство в этом JSON может быть числом или строкой, поэтому ввод может выглядеть так:

Код: Выделить всё

{"event_type":"status","value":"ok"}
или

Код: Выделить всё

{"event_type":"status","value":-253}
В моем коде есть тип записи, в который я хочу десериализовать:

Код: Выделить всё

public record StatusMessage(
[property: JsonPropertyName("event_type")] string EventType,
[property: JsonPropertyName("value")] string StatusValue)
Как и ожидалось, это работает нормально, когда я пытаюсь десериализовать вариант Json.String, но вариант Json.Number взрывается с System.InvalidOperationException: невозможно получить значение типа токена «Number» в виде строки..
Я знаю, что могу написать собственный JsonConverter для StatusMessage, но мне интересно, есть ли другой способ?>

Подробнее здесь: https://stackoverflow.com/questions/744 ... tring-with
Ответить

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

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

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

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

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