Маппинг json в DTO с помощью Jackson

84
09 апреля 2022, 17:20

Друзья, добрый день! Есть такая dto'шка:

public class HarDto {
    private Long id;
    private String version;
    private String browserName;
    private String browserVersion;
    private JsonNode content;
}

И json такой структуры:

{
    "log": {
        "version": "1.2",
        "creator": {
            "name": "Firefox",
            "version": "70.0.1"
        },
        "browser": {
            "name": "Firefox",
            "version": "70.0.1"
        },
        "pages": [
            {
                "startedDateTime": "2019-12-02T16:59:06.443+03:00",
                "id": "page_1",
                "pageTimings": {
                    "onContentLoad": 3936,
                    "onLoad": 7985
                }
            }
        ],
        "entries": [
            {...

Мне нужно как можно меньшими усилиями смпаить json в dto. От рутового элемента я избавился таким образом:

objectMapper.enable(DeserializationFeature.UNWRAP_ROOT_VALUE);

+

@JsonRootName("log")
public class HarDto {}

Но остается проблема с browserVersion и browserName. Могу ли я как-то получить их из json'а, не используя отдельный класс или не переделывая две строки(browser version and name) в map? Что-то типа

@JsonProperty("browser.name")
private String browserName;

Заранее огромное спасибо за помощь.

UPDATE

@Andrew Bystrov подсказал, как оказалось, самый простой и действенный вариант, решил вопрос таким образом: сделал data class, который содержал в себе полную структуру json, мапил в него, а потом на уровне сервиса написал простенький конвертер dtoToEntity

READ ALSO
Использование потоков в Telegram боте на java

Использование потоков в Telegram боте на java

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

220
Сохранение положения RadioGroup

Сохранение положения RadioGroup

Есть RadioGroup, состоящий из двух элементовКак сохранить их положение (т

163
Проблема с адаптивной версткой

Проблема с адаптивной версткой

Как бороться с зачеркнутыми значениями при адаптивной верстке? Если в медиа выражении на какое-то определенное разрешение экрана ставишь...

126