Я обновил jakson api при весенней загрузке 1.5.8 с jakson 2.8.0 до 2.10.0, с тех пор отображение объекта ведет себя по-другому.
когда я передаю тело запроса на контроллер Springboot с именем свойства Образец cityCode json
{
cityCode:DEL
}
при добавлении сопоставления jsonproperty работает нормально
@JsonProperty("cityCode")
private String cityCode;
, но когда я не добавляю аннотацию @JsonProperty, вместо этого он ищет CityCode. поскольку json передано по запросу, это
{
cityCode:DEL
}
it assing
object{cityCode=null}
пожалуйста, дайте мне знать, есть ли какое-либо свойство, которое мне нужно добавить при загрузке Spring
потому что в большинстве случаев я не хочу добавлять аннотацию @JsonProperty к полям класса
EDIT:
Я включаю log.level для трассировки, я видел какое-то сообщение, связанное с jackson
POJOPropertyBuilder - Невозможно создать экземпляр объекта Jackson 2.6. Использование более поздней версии jackson.
EDIT2:
Добавление класса образца модели
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel(value = "CityRequest")
public class CityRequest implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty
private String cityCode;
@ApiModelProperty
private String cityName;
@ApiModelProperty
private String area;
@ApiModelProperty
private List<String> areas;
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public List<String> getAreas() {
return areas;
}
public void setAreas(List<String> areas) {
this.areas = areas;
}
@Override
public String toString() {
return "CityRequest{" +
"cityCode='" + cityCode + '\'' +
", cityName='" + cityName + '\'' +
", area='" + area + '\'' +
", areas=" + areas +
'}';
}
}
в методе контроллера передается как
@ApiParam(value = "This field specifies the list of requests", required = true)
@Valid @RequestBody(required = true) CityRequest cityRequest