Как десериализовать объект со значением строки класса - PullRequest
3 голосов
/ 17 января 2020

Я запрашиваю таблицу, она имеет 2 столбца. Первый - строка json, второй - имя класса строки.

Обычно для десериализации объекта я делал бы следующее

var newObject = JsonConvert.DeserializeObject<MyObject>(jsonString);

Но в этом случае у меня есть только строковое значение MyObject. Мне интересно, как я могу десериализовать этот объект?

1 Ответ

5 голосов
/ 17 января 2020

Сначала вам нужно получить Type из этого строкового значения:

Type type = Type.GetType(typeName);

Затем использовать перегрузку DeserializeObject, которая принимает параметр Type:

var newObject = JsonConvert.DeserializeObject(jsonString, type);

См. https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject_2.htm.

...