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

vptzau2j  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(47)
class <T> ApiResponse<T>{
private T data;

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

序列化后结果:

{data:{}}

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

jvlzgdj9

jvlzgdj91#

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

mitkmikd

mitkmikd3#

@GaodYang 如果定义

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

序列化后{data:{}}

相关问题