У меня есть строка JSON, представляющая объект, и я хочу поместить ее информацию в объект Java B
с другой структурой. В настоящее время решение, которое я принимаю, создает Java-объект A
со структурой, идентичной объекту JSON, сделав преобразование из JSON в A
с помощью Jackson и позже, сделал сопоставление от A
до B
используя Dozer с XML-сопоставлениями. Нужно ли вообще избегать наличия объектов A
?
Короче говоря, в настоящее время у меня есть следующее:
JSON--Jackson-->A--Dozer(XML mappings)-->B
и я хотел бы добиться этого
JSON--???-->B
Вы уже знаете об этом, но Джексон может использовать такие типы структуры, как Map
, или JsonNode
качестве цели, поэтому вы можете сделать, скажем:
JsonNode root = mapper.readTree(jsonSource); Map<String,Object> asMap = mapper.readValue(jsonSource, Map.class);
а затем построить свой B
Джексон имеет только ограниченное количество структурных преобразований (простое развертывание) по дизайну, хотя существует обширный набор скалярных преобразований (неструктурные преобразования), поэтому, если вам понадобятся структурные изменения, может иметь смысл использовать библиотеку, которая ориентирована на структурные изменения.