当前位置: 首页 > article >正文

java fastxml json 科学计数法转换处理

背景:

由于 canal 切换为 tx dbbridge后,发现dbbridge对于canal的兼容性存在较大问题,从而引发 该文档的实践。

就目前发现 dbbrige 的字段 大小写 和 数据类型格式 从binlog 写入kafka 同canal 都会存在差异。

canal之前导出都是小写,但是dbbrige接出来后部分字段名大写,部分字段名小写。

如果下游代码 对于 大小写敏感的消费者 那么 就需要谨慎。特别是flink sql kafka connector的代码。

另外就是 数据格式 毕竟是 java 侧的所以 容易出现一些 科学计数法转换问题。

但是如果 大boss 的意思 硬要换,那 咋 还有啥说的。

本次实践通过 debug 慢慢深入 挖掘。

根据 debug 代码跟踪  。

这边发现 如果 走到  p.getDoubleValue 这个结果就不是原文了。所以不能让它走 到DoubleValue的处理. 但是由于 JsonParser 还不清楚如何自定义 , 另外 第二个条件可以通过配置参数 来 过判断 很容易实现。 这个可以通过 网络上一些 double 科学计数法 观测到。P.getDecimalVAlue() 也比较符合我们想要的结果  debug 模式下可查看中间表达式。然后 就到了 numberNode的方法里面.这个地方 图里面有些 误解,这个地方还是处于 readtree的部分 仅仅是用于 把string 转化为 jacksonnode.  关于 这个地方 _cfgBigDecimalExact 可以通过 objectmapper.setNodeFactory来初始化为 true的对象。就能够影响这边的行为。

然后因为笔者这边为中间转发 所以 需要做一层数据去 科学计数法 。

至此结束 数据为我们需要的 样式


http://www.kler.cn/a/291970.html

相关文章:

  • 【软件测试】设计测试用例的万能公式
  • Vue3 provide 和 inject的使用
  • Git 中的 patch 功能
  • Hadoop生态圈框架部署(六)- HBase完全分布式部署
  • [产品管理-82]:《产品经理从入门到精通》产品经理的基本思维与核心思想
  • 黑盒测试案例设计方法的使用(1)
  • 《机器学习》—— PCA降维
  • 草料二维码功能上新!可以跨分区移动或复制内容了!
  • 贷款被拒?这些“隐形警报”你可能没注意到!
  • nginx配置直接下载文件
  • volatile
  • 嵌入式OpenHarmony系统的一些特点
  • web笔记:JSP基础
  • 添加配置react组件路由具体步骤参考
  • 利用SSH加密实现的HTTP隧道分析与检测
  • 编译 ffmpeg 以支持AVS格式视频解码与解码
  • Chapter 06 axios使用指南
  • 【gtokentool】什么是数字货币?怎么使用?
  • 设计模式 代理模式(Proxy Pattern)
  • fast-voice-assistant
  • C++ 在变量前面加上(void)的作用
  • Jsoncpp的安装与使用
  • 【免越狱】iOS任意版本号APP下载
  • Apache Spark简介
  • 振动分析-26-频域分析之深入理解功率谱和功率谱密度的计算过程
  • 全国大学生数学建模竞赛全国奖项评阅工作规范(2023年修订稿)