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

Starrocks解析json数组

json数据

[{"spec": "70g/支","unit": "支","skuId": "1707823848651276346","amount": 6,"weight": 70,"spuName": "伊利 甄稀 苦咖啡味雪糕 流心冰淇淋 70g/支","weightUnit": "克(g)","weightForUnit": "70"}
]

解析代码

   SELECT storeId store_code,skuId sku_coding,get_json_double(cast(t.unnest AS JSON), '$.amount') usage_amount, get_json_string(cast(t.unnest AS JSON), '$.skuId') sub_commodity_SKU_coding,t.unnest,create_time
FROM zmaxx.zmaxx_data.api_commodity_combination , UNNEST(split(regexp_replace(regexp_replace(regexp_replace(childSkuList,' ','') , '\\]|\\[' ,'') ,'},{','}@&{' ),'@&')) AS t

代码解释

  1. regexp_replace(childSkuList,’ ‘,’‘):将空格替换,原因是数据中‘},{’,中间存在空格会导致下面代码无法解析
  2. regexp_replace(data, ‘\]|\[’ ,‘’):替换掉数组的中括号
  3. regexp_replace(data, ,‘},{’,‘}@&{’ ):多个对象之间的‘,’替换成特殊符号(不会出现在数据中),这个特殊符号用来split切分
  4. split(data,‘@&’):切分数据为数组
  5. UNNEST(array):类似hive中的explore()炸裂函数 和lateral view的结合,将一个数组拆成多行数据
  6. get_json_double(cast(t.unnest AS JSON), ‘$.amount’):根据key获取value

解析效果:

在这里插入图片描述

http://www.lryc.cn/news/418351.html

相关文章:

  • 安卓基本布局(下)
  • Python中使用正则表达式
  • 三大口诀不一样的代码,小小的制表符和换行符玩的溜呀
  • [qt] 线程等待与唤醒
  • Springboot 实现 Modbus Rtu 协议接入物联网设备
  • 鸿蒙笔记--装饰器
  • 不同环境下RabbitMQ的安装-3 操作RabbitMQ
  • postgregSQL配置vector插件
  • PUMA论文阅读
  • 算法学习day31(动态规划)
  • 嵌入式学Day25---Linux软件编程---线程间通信
  • 【实现100个unity特效之17】在unity中使用shader和ShaderGraph分别实现模糊特定层,高斯模糊效果
  • Unity补完计划 之 SpriteEditer Multiple
  • C++ IOStream
  • 2024/8/8训练
  • 项目的小结
  • 【目标检测实验系列】YOLOv5高效涨点:基于NAMAttention规范化注意力模块,调整权重因子关注有效特征(文内附源码)
  • LSPatch制作内置模块应用软件无需root 教你制作内置应用
  • Java设计模式七大原则
  • Copy as cURL 字段含义
  • mysql更改密码后,若依 后端启动不了解决方案
  • Redis--缓存击穿、缓存穿透、缓存雪崩
  • 10个理由告诉你,为什么鸿蒙是下一个职业风口!
  • Gitlab仓库的权限分配以及如何查看自己的权限
  • 职业本科大数据实训室
  • 【密码学】网络攻击类型:窃听攻击、假冒攻击、欺骗攻击和重放攻击
  • 探索WebKit的奥秘:塑造高效、兼容的现代网页应用
  • 2-52 基于matlab局部信息的模糊C均值聚类算法(FLICM)
  • JAVASE
  • SpringBoot学习之EasyExcel解析合并单元格(三十九)