2014-12-23 1 views
1

У меня есть строка JSON, представляющая объект, и я хочу поместить ее информацию в объект Java B с другой структурой. В настоящее время решение, которое я принимаю, представляет собой Java-объект A со структурой, идентичной объекту JSON, сделав преобразование из JSON в A с использованием Jackson и позже, сделал сопоставление от A до B с использованием Dozer с XML-сопоставлениями. В любом случае, чтобы избежать наличия объектов A?Карта с JSON на объект java с разной структурой

делает его Короче говоря, в настоящее время у меня есть это:

JSON--Jackson-->A--Dozer(XML mappings)-->B 

, и я хотел бы, чтобы достичь этого

JSON--???-->B 
+4

это зависит от структуры Json и B. Если вы опубликуете классы Json и B java - было бы проще помочь –

ответ

1

Вы знаете, это уже, но Джексон может использовать свободно типы конструкций, как Map, или JsonNode в качестве цели, поэтому вы можете сделать, скажем:

JsonNode root = mapper.readTree(jsonSource); Map<String,Object> asMap = mapper.readValue(jsonSource, Map.class);

, а затем создайте свой B. Джексон имеет только ограниченное количество структурных преобразований (простое развертывание) по дизайну, хотя существует обширный набор скалярных преобразований (неструктурные преобразования), поэтому, если вам понадобятся структурные изменения, может иметь смысл использовать библиотеку, которая ориентирована на структурные изменения.

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

  • Нет связанных вопросов^_^