fastjson遇到的问题

今天碰到一个问题,需要将数据保存在ES,然后便于搜索,由于ES本身是存在1秒钟的延迟的,所以ES一致性要求不高,主要是最终一致,我就想通过kafka消息的方式来同步

因为是kafka消息,所以传输的对象为string,然后用JSON.parseObject()方法解析回来,然后再执行,可是在这个反序列化的方法中,却出现了属性丢失的情况,原因是fastjson的原理是通过反射,调用set方法,比如{"name": "AA"},实际就是调用setName(),但是ES里面的 IndexRequest 对象没有这些方法,所以导致属性丢失

解决方案,反序列化的对象必须要有set方法,所以我就将 index,id, source存到自定义的对象,然后再反序列化,这样就能获取

还有一点,自定义的对象必须要有空参构造器,fastjson原理就是用空参构造器创建对象,然后set

代码久不贴了,还没有整理好,今天先记录问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容