1. Первый вопрос:
Как проанализировать JSON весной контроллера MVC для заполнения объектов User и UserPK?
Ну, ваш JSON должен соответствовать вашей структуре сущностей, поэтому вам нужно иметь UserId
объект внутри вашего User
объекта, чтобы соответствовать ожидаемой структуре. В вашем случае JSON, которым вы делитесь, не будет соответствовать этому и будет выдавать исключение при передаче в Spring Controller.
Это то, что вам понадобится как JSON:
{ "userid": {"id" : 1, "name" : "newUser"}, "aliases": [ "alias1", "alias2", "alias3" ] }
2. Второй вопрос:
На данный момент я использую объект DTO для анализа JSON с @RequestBody и заполнения моделей. Но я не уверен, что это хороший способ выполнить эту задачу?
Да, это хороший способ использовать DTO
, особенно если вы не хотите сохранять ту же структуру JSON
, которую используете сейчас, и, используя переданный DTO
, вы можете создать свой объект User
соответственно.
Если вы хотите избежать использования DTO
, вы можете просто использовать аннотацию @JsonUnwrapped
Джексона , с вашим полем userId
, таким образом, его свойства будут быть сериализованным как свойства класса User
, и ваш первый JSON
будет принят.