一键去除dubbo泛化调用返回的class字段

  1. dubbo 2.7.6以后 支持是否过滤class的开关。

generic.include.class=false
2. 如果版本比较低,需要手动过滤掉返回体中的class字段。

1
2
3
4
5
6
7
8
/**
* remove specify class field refer to dubbo generic invoke
*/
private static final SimplePropertyPreFilter CLASS_NAME_PRE_FILTER = new SimplePropertyPreFilter(HashMap.class);

static {
CLASS_NAME_PRE_FILTER.getExcludes().add("class");
}
JAVA
  1. 使用
    1
    JSON.toJSONString(mapString, CLASS_NAME_PRE_FILTER, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullListAsEmpty)
    JAVA

其中:WriteMapNullValue 保留null字段,WriteNullListAsEmpty表示把空列表转为[]而不是null。


一键去除dubbo泛化调用返回的class字段
https://leehoward.cn/2020/09/11/一键去除dubbo泛化调用返回的class字段/
作者
lihao
发布于
2020年9月11日
许可协议