Как десериализовать JSON объекты (схемы, заданной во время выполнения) в сериализуемые C# объекты? - PullRequest
0 голосов
/ 19 января 2020

Учитывая JSON схему (заданную во время выполнения), мне нужна функция в C#, которая принимает строку в качестве аргумента, проверяет, является ли данная строка действительным JSON объектом данная схема и возвращает сериализуемый объект C#.

С сериализуемым объектом C# я имею в виду объект, который можно добавить к ValueSet .

Задача 1 Я знаю, что с Json. NET я могу десериализовать JSON объекты, но это работает только с классами, которые определены во время компиляции, тогда как моя схема JSON дается во время выполнения, поэтому классы еще не определены во время компиляции!

Проблема 2: Json. NET не возвращает сериализуемые объекты, то есть объекты, которые возвращаются Json. NET нельзя добавить в ValueSet!

1 Ответ

0 голосов
/ 19 января 2020

Хотя это не решает ваши проблемы, возможно, есть обходной путь: состав.

Создайте класс-оболочку, который реализует ISerializable и имеет свойство dynamici c. Десериализуйте ваш объект и сохраните его в этом свойстве. Вам нужно будет предоставить код де / сериализации для вашего объекта, но это должно быть просто: просто сделайте работу JSON serializer.

Проблема, с которой вы столкнулись, заключается в том, что вы спрашиваете библиотека, написанная как можно более обобщенно, чтобы сделать что-то очень конкретное c. Вам будет трудно найти библиотеку, которая делает это. (Хотя я думаю, что это хорошая идея, и я могу добавить ее к своей функции генерации шрифтов.)


(Бесстыдная вилка) Кроме того, вы смотрели на Ламантин. Json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...