#java #json #dictionary #graphql #schema
#java #json #словарь #graphql #схема
Вопрос:
Ищу элегантное существующее решение для отображения Java Map в / из GraphQL / JSON.
Map<String, String> map = Map.of("a", "b", "c", "d");
В идеале, и я полагаю, что в соответствии с JSON ObjectMapper, результирующий JSON должен выглядеть следующим образом:
{
"a": "b",
"c": "d"
}
Единственный способ с ванильной схемой GraphQL — это определить тип с ключом и значением и упаковать их в список. Это, в свою очередь, создает раздутый JSON:
[
{
"key": "a",
"value": "b"
},
{
"key": "c",
"value": "d"
}
]
Я видел ответы, связанные со скалярным типом, и если это единственный способ, пусть будет так.
Спасибо за любые указания / подсказки!
Редактировать: я все еще уклоняюсь от реализации моего объекта данных в виде карты. У кого-нибудь был какой-либо успех в этом? На https://www.graphql-java-kickstart.com/tools/schema-definition последний пункт раздела Приоритет отображения полей меня интригует (хотя пока этого недостаточно):
Наконец, если класс data реализует
java.util.Map
, то:метод get(имя)
Редактировать 2: после еще некоторого чтения я теперь понимаю, что между java maps и GraphQL нет прямого сопоставления. Я буду следовать скалярному подходу для карт, поскольку этого будет достаточно для большинства моих предполагаемых применений, т. Е. просто возвращать, при желании, некоторые настройки / свойства / и т.д. Конкретной операции или запроса