У меня есть такой объект.
public class Profile {
private String email;
private String phone;
@SerializedName("userCode")
private String user_code;
public String getEmail() {
return email;
}
public String getPhone() {
return phone;
}
public String getUser_code() {
return user_code;
}
}
Это то, что я получил, когда возвращал этот объект в Rest API
{
"email": "abc@gmail.com",
"phone": 12345678,
"user_code": "742aeaefac"
}
Видимо, аннотация @SerializedName
здесь не работалаЯ могу понять, что он получает имя объекта свойства на основе его имени получателя, а не в аннотации.Если я изменю имя получателя на getUserCode()
, оно будет работать так, как я ожидал.
Я тоже пытаюсь использовать @JsonProperty
, но тоже не помогло.
Может кто-нибудь объяснить, что здесь делается для решения этой проблемы?
Обновить код для сериализациипроцесс в контроллере.
@PostMapping(path = "/login", produces = "application/json")
@ResponseBody
public ClientRepresentation login(@RequestBody LoginRequest login) {
Map<String, Object> resObj = new HashMap<String, Object>();
ProfileResponse profileResponse = userService.findUserProfileByUserCode(login.getUserCode());
//Code logic to process object data...
resObj.put("profile", profileResponse);
return ClientRepresentationBuilder.buildClientRep(HttpStatus.OK.value(), "Success", resObj);
}
ClientRepresentation класс
public class ClientRepresentation implements Serializable {
private Integer code;
private String message;
private Object data;
}