2016-08-25 2 views
1

Я создаю REST API с полезной нагрузкой, которая имеет свойство jsonContent, которое содержит любой действительный json.Карта Dynamic json object to java

{ 
    "name":"foo", 
    "jsonContent":{ "abc":"My content"} 
} 

На стороне сервера я хочу, чтобы отобразить его на родовой объект Java, и в конечном итоге сохранить весь объект MongoDB

private String name; 
private ?????? jsonContent 

Я использую для отображения Джексона JSON в Java. Как объявить объект java, чтобы можно было использовать любой json-контент.

+1

Любой JSON может быть представлена ​​в терминах отображений (Строка объектов) и списков. Я понимаю, что это не сработает с Джексоном, но вы можете разобрать json в серии карт и списков, а затем сериализовать их. – Jason

ответ

1

Использование JsonNode:

private JsonNode jsonContent; 
+0

Он работает, но когда объект сохраняется в mongodb, он десериализуется следующим образом с дополнительными свойствами и вложением '{" _class ":" com.fasterxml.jackson.databind.node.ObjectNode ", " _children ": { " название»: { "_value": "Mytitle", "_class": "com.fasterxml.jackson.databind.node.TextNode" }} , "_nodeFactory": { "_cfgBigDecimalExact": ложные } ' – Sridhar

1

Я ответил на мой собственный вопрос, СЛЕДУЯ работал нормально для меня

private Map<String,Object> jsonContent;