fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] parseObject方法如果使用TypeReference参数中带有泛型,无法注入字段值,但是FastJson可以work

Open duhaifeng opened this issue 2 months ago • 0 comments

问题描述

简要描述您碰到的问题。

环境信息

请填写以下信息:

  • OS信息: [e.g.:Windows11 16 GB]
  • JDK信息: [e.g.:Oraclejdk 1.8.0_202]
  • 版本信息:[e.g.:Fastjson2 2.0.51]

重现步骤

如何操作可以重现该问题:

对象定义

public class DataApiResponse <T> {

private String code;

private String msg;

private List<T> data;  // T对象中字段值都为有效注入

}

@Data public class DfTableMetaModel {

private String tbName;

private String tbComment;

private final List<DfColumnMetaModel> colMetaList = new ArrayList<>();

public void addColMeta(DfColumnMetaModel colMetaInfo) {
    this.colMetaList.add(colMetaInfo);
}

}

处理如下类似json数据:

{ "msg": "调用成功", "code": "200", "data": [ { "tb_comment": "bbb", "tb_name": "aaa" } ] }

执行如下代码无法将泛型DfTableMetaModel的值注入,但是改回FastJson可以注入

DataApiResponse<DfTableMetaModel> tableMetaResult = JSON.parseObject(dataApiRespStr, new TypeReference<DataApiResponse<DfTableMetaModel>>() {});

期待的正确结果

与FastJson结果一致

duhaifeng avatar Jun 17 '24 12:06 duhaifeng