Стоит задача принимать любую JSON структуру в metaInfo и content и сохранять это все в БД.
У меня есть вот такие поля в модели:
private String type;
private Object metaInfo;
private Object content;
В контроллере я принимаю @RequestBody JsonNode request
Далее маплю в модель(Event) и сохраняю в БД:
ObjectMapper mapper;
mapper.readerFor(new TypeReference<List<Event>>() {
});
reader.readValue(request));
Все работает как мне нужно за исключением того что в БД целые числа отображаются как new NumberInt("123")
Например вот такой запрос:
[
{
"type": "text",
"metaInfo": {
"a": "asd",
"b": 123,
"c": 123.123
},
"content": "content"
}
]
сохраняется как {"a": "asd", "b": new NumberInt("123"), "c": 123.123}
1. Можноли сделать как-то правильнее ? Или по каким словам погуглить?
2. Как избавится от new NumberInt чтоб было просто число как в случае с "c": 123.123
@javastart
Обсуждают сегодня