问题1:没有重写方法toString
最终的合流无法显示,是因为orderWide没有重写方法toString
并且此合流后的数据还没有sink,仅仅是消费kafka,因此重写方法后,默认之前的kafka offset已经提交,对于同一消费组不会再重复消费,所以需要修改消费组再重新运行。
@Override
public String toString() {
return JSON.toJSONString(this, SerializerFeature.WriteMapNullValue);
}
问题2:如何将json中null字段打印输出,可以不区分字段类型,所有null都输出为"",代码如下
@Override
public String toString() {
//使用过滤器将所有json字符为null的全部输出"",不再区分字段类型
ValueFilter filter = new ValueFilter() {
@Override
public Object process(Object object, String name, Object value) {
if(value==null){
return "";
}
return value;
}
};
return JSON.toJSONString(this,filter);
//return JSON.toJSONString(this, SerializerFeature.WriteMapNullValue);//空字符串输出null
// return JSON.toJSONString(this,SerializerFeature.WriteNullStringAsEmpty);//空字符串输出""
//return JSON.toJSONString(this, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);//将所有null输出,默认数字类型的输出null(可以设置0),字符string类型的输出""
// return JSON.toJSONString(this,SerializerFeature.);
}
https://www.cnblogs.com/JonaLin/p/11577804.html
https://www.cnblogs.com/JonaLin/p/11577804.html
https://www.shuzhiduo.com/A/6pdDqwlKzw/