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

上海的网站设计公司价格海外电商平台

上海的网站设计公司价格,海外电商平台,实用网站建设期末考试,代理网关app未运行 歌华问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name#xff1a;“zhangsan”#xff0c; age#xff1a;25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name“zhangsan” age25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个json 这样会导致解析json失败 问题解决的思路 我的方法是将整个文件中的内容全部解析 然后使用Seatunnel中自带的JackJson这个工具类进行解析 然后再获取到单个的Json对象 之后再解析成一个Json的字符串 因为解析过之后的Json字符串肯定不存在换行 所以这种换行的问题算是规避了 但是这样又引发了另一个问题就是 一下子加载全部的文件内容可能会导致内存飙升 而且解析json 构造对象这个过程也是比较耗费资源的 但是我目前没有想出来更好的方法 我目前的业务需求是 这种ftp的文件都是小文件 不存在特别大的json 所以我的这个方法是可以完成现在的需求的 修改代码的内容 要修改的代码的位置是 org/apache/seatunnel/connectors/seatunnel/file/source/reader/JsonReadStrategy.java Overridepublic void readProcess(String path,String tableId,CollectorSeaTunnelRow output,InputStream inputStream,MapString, String partitionsMap,String currentFileName)throws IOException {InputStream actualInputStream;switch (compressFormat) {case LZO:LzopCodec lzo new LzopCodec();actualInputStream lzo.createInputStream(inputStream);break;case NONE:actualInputStream inputStream;break;default:log.warn(Json file does not support this compress type: {},compressFormat.getCompressCodec());actualInputStream inputStream;break;}try (BufferedReader reader new BufferedReader(new InputStreamReader(actualInputStream, encoding))) {//TODO wxt 优先使用之前的方法try{reader.lines().forEach(line - {try {SeaTunnelRow seaTunnelRow deserializationSchema.deserialize(line.getBytes(StandardCharsets.UTF_8));if (isMergePartition) {int index seaTunnelRowType.getTotalFields();for (String value : partitionsMap.values()) {seaTunnelRow.setField(index, value);}}seaTunnelRow.setTableId(tableId);output.collect(seaTunnelRow);} catch (IOException e) {String errorMsg String.format(Deserialize this jsonFile data [%s] failed, please check the origin data,line);throw new FileConnectorException(FileConnectorErrorCode.DATA_DESERIALIZE_FAILED,errorMsg,e);}});}catch (Exception e){//region 我修改的内容//首先读取全部的内容// 将 BufferedReader 内容读取到一个 StringStringWriter stringWriter new StringWriter();String line;while ((line reader.readLine()) ! null) {stringWriter.write(line);}String jsonContent stringWriter.toString();// 判断 JSON 类型并处理ObjectMapper objectMapper new ObjectMapper();JsonNode jsonNode objectMapper.readTree(jsonContent);if (jsonNode.isArray()) {// 遍历数组并转换为单行字符串for (JsonNode node : jsonNode) {String singleLineJson objectMapper.writeValueAsString(node);// region 这一部分是我直接从上面复制下来的try {SeaTunnelRow seaTunnelRow deserializationSchema.deserialize(singleLineJson.getBytes(StandardCharsets.UTF_8));if (isMergePartition) {int index seaTunnelRowType.getTotalFields();for (String value : partitionsMap.values()) {seaTunnelRow.setField(index, value);}}seaTunnelRow.setTableId(tableId);output.collect(seaTunnelRow);} catch (IOException e1) {String errorMsg String.format(Deserialize this jsonFile data [%s] failed, please check the origin data,singleLineJson);throw new FileConnectorException(FileConnectorErrorCode.DATA_DESERIALIZE_FAILED,errorMsg,e);}// endregion}} else if (jsonNode.isObject()) {String singleLineJson objectMapper.writeValueAsString(jsonNode);// region 这一部分是我直接从上面复制下来的try {SeaTunnelRow seaTunnelRow deserializationSchema.deserialize(singleLineJson.getBytes(StandardCharsets.UTF_8));if (isMergePartition) {int index seaTunnelRowType.getTotalFields();for (String value : partitionsMap.values()) {seaTunnelRow.setField(index, value);}}seaTunnelRow.setTableId(tableId);output.collect(seaTunnelRow);} catch (IOException e1) {String errorMsg String.format(Deserialize this jsonFile data [%s] failed, please check the origin data,singleLineJson);throw new FileConnectorException(FileConnectorErrorCode.DATA_DESERIALIZE_FAILED,errorMsg,e);}// endregion}//endregion}}}
http://www.hkea.cn/news/14384881/

相关文章:

  • 石岩网站设计佛山外贸网站
  • 360免费建站连接上饶建设银行网站
  • 网站如何做用户的实名认证苏州建设培训中心
  • 做网站做58好还是赶集好wordpress注册完成请检查电子邮件
  • 网站软文制作淘宝内部优惠券网站怎么做
  • 西樵网站制作四川seo多少钱
  • 如何优化网站关键字如何做网签合同 网站
  • 章丘做网站天眼查企业查询官网网页版
  • 怎样租用个人网站空间黄骅港股票代码
  • dw网站设计模板商业综合体
  • 制作网页的网站的软件是简述网站一般建设的流程
  • php 网站 服务器wordpress标签图片不显示
  • 本溪网站开发公司搜狗收录提交
  • 网站开发女生工资dw做单页网站教程
  • 网站短期电脑培训班学费discuz可以做门户网站么
  • 上海网站建设方案托管wordpress关闭电脑访问
  • 哪个网站上可以做外贸公司网站建设进度计划书
  • seo整站优化哪家好网站的主要功能模块
  • 采购网站有哪些小程序模板消息推送
  • 寿光网站建设公司免费海报背景素材
  • 设置网站建设天津市建设工程合同备网站
  • 网站备案代码如何加到驻马店住房和城乡建设厅网站
  • 包装公司网站模板下载提供医疗网站建设
  • 做公众号和网站主页的区别wordpress 4.7.3
  • vps能同时做网站同时做其它事吗高校网站如何建设
  • 北京网站模板建设网站的push运营怎么做
  • 长春网站建设方案优化网站模板预览
  • 关于做网站的宠物网站建设方案书
  • 南充高端网站建设沧州网络营销网络宣传业务
  • 为什么很多网站用php做分销渠道系统