Как развернуть несколько карт до Json - PullRequest
0 голосов
/ 14 февраля 2020

Как развернуть несколько карт на JSON. Пример

public class Class {
Map<String,String> firstMap;
Map<String,String> secondMap;
}

Я могу использовать @JsonAnyGetter только для одного поля карты. Я также знаю, что могу использовать пользовательский Serializer, но у меня есть больше полей в классе, для которых я не хочу менять метод десериализации. Предпочтительный JSON вывод:

{
    "Name": "Name",
    "LastName": "LastName",
    "firstMapKey": "firstMapValue"
    "secondMapKey": "secondMapValue"
}

Вместо:

{
    "Name": "Name",
    "LastName": "LastName",
    "firstMap": {
        "firstMapKey": "firstMapValue"
    },
    "secondMap": {
        "secondMapKey": "secondMapValue"
    }
}

1 Ответ

1 голос
/ 14 февраля 2020

@ JonK помог мне: я добавил одну дополнительную карту и объединил в нее обе карты. Для дополнительной карты я использовал @JsonAnyGetter и @JsonIgnore для обеих карт, используемых для слияния.

public class Class {
    @JsonIgnore
    Map<String,String> firstMap;
    @JsonIgnore
    Map<String,String> secondMap;

    Map<String,String> compositeMap

    @JsonAnyGetter
    public Map<String, String> getCompositeMap() {
        return compositeMap;
    }

    @JsonAnySetter
    public void setCompositeMap(Map<String, String> compositeMap) {
        this.compositeMap = compositeMap;
    }

}
...