Ваша спецификация не ясна, у вас будет много одинаковых действий (добавление, удаление и т. Д.) Или не более одного?
Первый вариант
В случаеу вас есть не более одного экземпляра того же действия, вы можете заменить массив обычным объектом:
{ "update" : {
"labels" : {
"add" : "A label",
"remove" : "B label"
}
}
}
, а затем изменить свои метки на Map<String, String>
вместо List<Label>
Второй вариант
Если у вас много экземпляров одного и того же действия, вы можете изменить дизайн метки так, чтобы он содержал два поля: value
и action
{ "update" : {
"labels" : [{"action": "add", "value" : "A label"} ]
}
}
И обновите Label
соответственно:
public static class Label{
public String action;
public String value
public Label(String action, String value){
this.action = action;
this.value = value;
}
}
Вы также можете изменить action
на enum
, которые определяют все ваши возможные действия
Третий вариант
Если вам действительно нужно придерживаться своего дизайна json, у вас не так много вариантов определения статического класса для динамического json.возможно, это можно как-то взломать, используя полиморфизм Джексона.Но вы всегда можете просто использовать объекты json и оставить метки как List<JsonObject>