实用指南:【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;
}

posted @ 2025-09-11 14:32  wzzkaifa  阅读(22)  评论(0)    收藏  举报