@stalerum

JSON.NET Как написать класс, где поле в json может иметь разный тип данных?

При запросе по одной и той же ссылке могут прийти разные ответы.
Например:
{"data":"blablabla","text":"lorem ipsum"}
{"data":[{"item":"one"},{"item":"two"}],"text":"lorem ipsum"}

Я пользуюсь десериализатором и приходиться прописывать классы.
В первом случае data - string, во втором массив.
Но какой тип должен быть у data в этом случае, чтобы при разных ответах я мог получить результат? При чем я не могу заранее знать, какой вариант придет в ответ.
Или должно быть какое-то условие, но я не знаю как его сюда прикрутить.
  • Вопрос задан
  • 619 просмотров
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
Была у меня похожая беда
Решил с помощью dynamic.
В него заливаем json, а там, на свой страх и риск, описываем логику обработки в случае, если пришло это или пришло то

подробнее о dynamic
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ArXen42
@ArXen42
Можно попробовать сделать data типом Object, но не факт, что рантайм сериализация это дело подхватит. И потом работать с ним в стиле if (data.GetType.IsArray) ... (ужас какой).
Но, как мне кажется, это плохой подход. Если приходят разные данные - нужно и сущности разные делать. Хотя, конечно, зависит от контекста задачи и т.д.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы