发现类型嵌套的时候无法获取zIndex
参数值。
@Data
public class ScreenVo {
DatavScreen datavScreen;
List<DatavScreenItem> screenItems;
}
@Data
public class DatavScreenItem extends Model<DatavScreen> {
private String compId;
@TableField("z_index")
private Integer zIndex;
@JsonProperty("zIndex")
public Integer getzIndex() {
return zIndex;
}
}
添加@JsonProperty("zIndex")
注解解决问题。
参考:
1) 如果没有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解决问题,XXXX就是转换成Json的属性名,但注意,只有放在getter上才是有效的,直接在属性上加没效果.(这说明spring 默认的jackson类库处理是基于访问器。
2)如果使用了fastjson,就用@JSONField(name="XXXXX")注解方式进行,这个可以放在属性上。不过放在getter,setter上更好。
3)如果同时有两个存在,一般都是fastjson起效果,不过具体情况可以试下,我遇到的就是fastjson起效。当然要强制失效fastjson,就需要在Application类上加注解:@EnableWebMvc.