Страницы

Поиск по вопросам

среда, 19 декабря 2018 г.

Десериализация многих разных JSON на C#

Есть около сотни (в будущем больше) JSON. Каждый JSON имеет свою структуру. Необходимо их все десериализовать. Пытаюсь использовать стандартный класс DataContractJsonSerializer, пользуюсь этой схемой.
При создании экземпляра класса нужно передавать ему тип сериализуемых или десериализуемых экземпляров
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
Как я уже сказал, у меня много разных типов, но метод, осуществляющий десериализацию, один. У меня есть строковые параметры с именами классов, описывающих структуру JSON, например: "Person", "Address" и прочее.
Как их подставить в конструктор DataContractJsonSerializer так, чтобы не писать сотню кейсов? Возможно ли это стандартными методами?
Пробовал это, но не работает.
Как вообще такие задачи решаются в промышленной среде?
В интернете полно примеров с одним жестко заданным JSON, но про много разных нигде не нашел.


Ответ

Если вам изначально известно, какой объект представлен в json'e, то вам достаточно воспользоваться Generic-методом для дессериализации:
var myNewObject = JsonConvert.DeserializeObject(json);

Комментариев нет:

Отправить комментарий