У меня вывод JSON правильно аннотирован и сопоставлен с миксинами для класса User с соответствующими установщиками и получателями для этих свойств:
public class User {
String first;
String middle;
String last;
...
}
Когда я использую свой миксин:
public interface UserMixin {
@JsonProperty("first")
void setFirst(String first);
@JsonProperty("middle")
void setMiddle(String middle);
@JsonProperty("last")
void setLast(String last);
}
После регистрации миксина и записи класса User с помощью ObjectMapper я получаю:
"User" :
{
"first" : "William",
"middle" : "S",
"last" : "Preston"
}
Итак, до сих пор, для краткости, я немного соврал - User, как указано выше, представляет собой большой устаревший класс DTO, устойчивый к изменениям.
И хотя миксин отлично работает, наш клиент предпочел бы увидеть что-то вроде:
"User" :
{
"Name" :
{
"first" : "William",
"middle" : "S",
"last" : "Preston"
}
...
}
Повторяю, DTO устойчив к изменениям. В идеале я бы реорганизовал DTO и сделал это правильно.
Думаю, я спрашиваю - есть ли какая-то комбинация Mixin / Annotation, которую я могу использовать для подкласса «Name» из уже существующих данных в классе User? Подкласса Name нет ... но все части, необходимые для «записи» JSON в этом формате, существуют.
JsonSerializer
. - person Sotirios Delimanolis   schedule 11.06.2014@JsonUnwrapped
. К сожалению, насколько мне известно, автоматическая упаковка значения не поддерживается. - person Mark Peters   schedule 11.06.2014