У меня есть один контроллер:
@RequestMapping(value="/getContact", method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON_VALUE)
public Contact getContact () {
Contact s1 = new Contact();
s1.setContactName("Avijit");
s1.setContactType("Primary");
return s1;
}
Класс контакта:
public class Contact {
private String contactName;
private String contactType;
public String getContactName() {
return contactName;
}
public void setContactName(String contactNm) {
this.contactName = contactNm;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
}
Объект JSON, возвращаемый из контроллера в этом случае:
{
"contactName": "Avijit",
"contactType": "Primary"
}
Теперь, если я добавлю @JsonProperty в свой класс модели:
public class Contact {
@JsonProperty(value="contactName")
private String contactName;
private String contactType;
public String getContactName() {
return contactName;
}
public void setContactName(String contactNm) {
this.contactName = contactNm;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
}
Объект JSON вернется из контроллера, когда я использую @JsonProperty в классе модели:
{
"contactType": "Primary",
"contactName": "Avijit"
}
Я спрашиваю: почему происходит это изменение, даже если оба этих тега имеют одно и то же имя?
ПРИМЕЧАНИЕ. Я уже прочитал эту ссылку, и я в значительной степени осведомлен о @JsonPropertyOrder Порядок объектов JSON, использующихObjectMapper Джексона