JSON 数据:
{
"fSec": 22.100000
}
类:
@Data
public static class DataInfo {
@JsonAlias("fSec")
private float fSec;
}
异常
使用 jaskson 的 parseObject 时,出现报错:
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "fSec" (class com.fosafer.dto.SqdValidLenDTO$DataInfo), not marked as ignorable (one known property: "fsec"])
原因
由于字段命名不规范且使用了 lombok 插件,lombok 生成的get、set方法为:
getFSec();
setFSec();
jackson 在获取 set 方法反解析字段时,解析出的字段为:fses,于是出现:
field "fSec" (class com.fosafer.dto.SqdValidLenDTO$DataInfo), not marked as ignorable (one known property: "fsec"]
解决方案
- 使用 IDEA 手动生成get、set:
public void setfSec(float fSec) {
this.fSec = fSec;
}
- 添加别名注解
@JsonAlias("fSec")
private float fSec;