2015-12-08 4 views
0

У меня есть строка кода, где я конвертирую свой Object в POJO. Для этого я использую библиотеку Джексона.Динамически получить имя класса и ссылку?

POJO container = objectMapper.convertValue(resource, POJO.class); 

Теперь я должен сделать это для многих (~ 50) POJO. Поэтому вместо того, чтобы писать так много случаев переключения, я хотел бы сделать это в одной строке динамически. У меня есть перечисление, откуда я получу свое имя POJO.

Есть ли простой способ достичь этого. Я искал и понял, что следует использовать Class.forName. Я получаю POJO.class оттуда. Как получить ссылку на POJO динамически?

+1

Вам нужно знать, к чему вы конвертируете JSON, поэтому, если вы не можете написать что-то, что определяет типы объектов с помощью уникальной комбинации полей (или у вас есть что-то в JSON, которое напрямую коррелирует с вашим Java-кодом) вам придется сделать это с трудом. –

ответ

0

Тот факт, что вы можете непосредственно преобразовать в какой-то класс, но вы не можете догадаться, какой класс вы должны иметь эту информацию в ваших данных также

1 определяют формат данных, а также встраивать имя класс внутри

Пример:

{"classname":"MyClass","object": ["var1": 1, "var2":33,"var3":"some string","var4":true] } 

2 читать ваши данные как "классический объект JSON", чтобы получить имя класса, а "остальное" (объект)

3 теперь у вас есть свое имя класса: вы можете конвертировать «объект» в то, что хотите.

Смежные вопросы