Сериализация строки в строку. JsonSerializer
Есть generic методе Foo<T>, в котором есть такая строка:
var responseObject = JsonSerializer.Deserialize<T>(stringData);
в некоторых случаях необходимо сделать вызов: Foo<string>(). В этом случае я получаю ошибку:
The JSON value could not be converted to System.String. Path: $ | LineNumber: 0 | BytePositionInLine: 1.
Подскажите, есть ли вариант заставить сериализатор понять, что от него требуется?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
JsonSerializer.Deserialize<T> не умеет возвращать строку, которую в него передали без изменений
Вместо этого можете попробовать вот такое заклинание
T responseObject = typeof(T) == typeof(string) ? (T)(object)stringData : JsonSerializer.Deserialize<T>(stringData);