JSON.NET Как написать класс, где поле в json может иметь разный тип данных?
При запросе по одной и той же ссылке могут прийти разные ответы.
Например:
{"data":"blablabla","text":"lorem ipsum"}
{"data":[{"item":"one"},{"item":"two"}],"text":"lorem ipsum"}
Я пользуюсь десериализатором и приходиться прописывать классы.
В первом случае data - string, во втором массив.
Но какой тип должен быть у data в этом случае, чтобы при разных ответах я мог получить результат? При чем я не могу заранее знать, какой вариант придет в ответ.
Или должно быть какое-то условие, но я не знаю как его сюда прикрутить.
Была у меня похожая беда
Решил с помощью dynamic.
В него заливаем json, а там, на свой страх и риск, описываем логику обработки в случае, если пришло это или пришло то
Можно попробовать сделать data типом Object, но не факт, что рантайм сериализация это дело подхватит. И потом работать с ним в стиле if (data.GetType.IsArray) ... (ужас какой).
Но, как мне кажется, это плохой подход. Если приходят разные данные - нужно и сущности разные делать. Хотя, конечно, зависит от контекста задачи и т.д.