Можно ли десериализовать 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

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