实用指南:【Fastjson】Fastjson2 在不同 Modules 模块包下,@JSONField name映射无法反序列化的 BUG 及解决
问题:在使用 alibaba fastjson2 做 @JSONField 字段名映射时,在同模块包下 Flink Jar 任务正常映射,本地测试正常映射,但是将两个模块包上传至 Flink Cluster 之后,出现反序列化异常,子模块无法反序列化父模块中的 Bean Class 对象名,返回对应字段值 null。
com.alibaba.fastjson2
fastjson2
2.0.58
原因:fastjson2 拥有更安全的模式,推测原因可能是不支持挎包反序列化不同的变量命名映射,但同包下支持,来保证开发字段命名规范的一致性。
解决:更换继续使用 com.alibaba.fastjson。解决挎包,@JSONField name 映射 BUG
com.alibaba
fastjson
2.0.58
父模块写法:
import com.alibaba.fastjson.annotation.JSONField;
import lombok.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Student {
private Integer id;
private String name;
@JSONField(name = "phone_number")
private String phoneNumber;
@JSONField(name = "age_years")
private Integer ageYears;
}

浙公网安备 33010602011771号