[alibaba/fastjson]泛型反序列化 生成{},如何解决

2025-10-31 48 views
0
class <T> ApiResponse<T>{
private T data;

public T getData(){
     return data;
}
public T setData(T data){
     this. data=data;
}

序列化后结果:

{data:{}}

如何显示正确的T 类型内容,二不是{}

回答

5

必须设置值才能正确显示,例如 定义了ApiResponse<Long> 不setData的时候结果是{} 而不是{data:{}} setDate(123l);之后正常显示{"data":123} 你所说的{"data":{}}结果应该是你定义了一个实例对象设置在data里面,但是实例属性又没有赋值,这种情况是正确的,因为对象本身就应该用{}表示。 如果你类型内容的意思是显示对象字段的话,加上SerializerFeature.WRITE_MAP_NULL_FEATURES就可以了

2

@GaodYang Thks

9

@GaodYang 如果定义

ApiResponse<List<String>>  response=new ApiResponse<List<String>>();
List<String> list=new ArrayList<String>();
list.add("a");
response.setData(list)

序列化后{data:{}}