Spring RestController игнорирует @ jsonProperty / JsonGetter / JsonSetter - PullRequest
1 голос
/ 25 сентября 2019

Я использую Springboot 2.1.2.RELEASE.У меня есть запрос get с объектом в качестве входного параметра.Ожидая, что атрибуты в моем классе будут параметрами запроса.Мой EmployeeBean имеет свойства в соглашении об именовании Java.Но мне нужны пользовательские имена для запроса параметров.Пытался добиться этого, используя аннотации @ JsonProperty / @ Jsongetter / @JsonSetter, но он не работает.Я что-то упустил?

@RequestMapping(value="/api", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE )
public List<Map<String, Object>> getEmployeeData(EmployeeBean employeeBean


@Data
public class EmployeeBean implements Serializable {

private static final long serialVersionUID = -2757478480787308113L;

@JsonProperty(value="first_name")
private String firstName;

@JsonProperty(value="last_name")    
private String lastName;

1 Ответ

0 голосов
/ 25 сентября 2019

Попробуйте,

    private String firstName;

    private String lastName;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @JsonProperty(value="first_name")
    public void setFirst_name(String firstName) {
        this.firstName = firstName;
    }

    @JsonProperty(value="last_name")
    public void setLast_name(String lastName) {
        this.lastName = lastName;
    }

контроллер

@RestController
public class JsonController {

    @RequestMapping(value="/api", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE )
    public List<Map<String, Object>> getEmployeeData(EmployeeBean employeeBean) {
        System.out.println("employeeBean: "+employeeBean);
        return null;
    }
}

enter image description here

результат:

employeeBean: EmployeeBean [firstName=firstName10, lastName=lastName20]

Я проверил, и это сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...