Возможно, вы не создали сеттеры для некоторых полей для вашего класса параметров, но проблема кроется глубже - ваш способ обработки этого неверен. @RestController
Spring преобразует входящую полезную нагрузку из JSON в параметр объекта метода контроллера по умолчанию и преобразует возвращаемый объект в JSON.
Вам не нужно включать какие-либо дополнительные зависимости, кроме spring-boot-starter-web
, который включает маппер Джексона JSON по умолчанию.
Но даже если вместо этого вы используете gson
, Spring все равно будет работать именно так, только вместо этого будет использоваться gson
.
Все, что вам нужно сделать, - это создать класс, который правильно представляет ваш входящий json, и использовать этот класс в качестве параметра, он имеет иметь пустой конструктор, установщики, если вы используете этот объект в качестве тела запроса, и получатели, если вы используете этот объект в качестве тела ответа.
UPD: Если вы не являетесь владельцем объекта вы используете в качестве параметра метода контроллера - я все равно рекомендую создавать пользовательские POJO, используя неинкапсулированную стороннюю библиотеку, которая, по крайней мере, считается запахом, нарушает инкапсуляцию и создает тесную связь со сторонней библиотекой.