You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从BigQuery嵌套JSON字符串中提取PriceId的技术求助

解决BigQuery中嵌套JSON的PriceId提取问题

我来帮你搞定这个嵌套JSON解析的痛点!你的核心问题是data字段是STRING类型的嵌套JSON,之前的方法只拿到了整个Plan对象导致长度超限,现在直接提取目标字段就能解决这个问题,具体步骤如下:

核心思路

因为data是字符串格式的JSON,首先要把它解析成JSON结构,然后展开Plan数组,最后直接提取数组中每个对象的PriceId字段——这样既不用处理超长的JSON字符串,又能精准拿到你需要的值。

完整SQL语句

SELECT
  plan_item.PriceId
FROM
  `your-project.your-dataset.your-table`, -- 替换成你的实际表名
  UNNEST(JSON_QUERY_ARRAY(JSON_PARSE(data), '$.Plan')) AS plan_item

逐步骤解释

  • JSON_PARSE(data):把STRING类型的data字段转换成BigQuery可操作的JSON对象,这是处理字符串格式JSON的第一步,没有它后续的JSON函数无法生效。
  • JSON_QUERY_ARRAY(..., '$.Plan'):从解析后的JSON中定位到Plan数组,把它提取出来作为可展开的数组结构。
  • UNNEST(...) AS plan_item:将Plan数组展开成逐行的记录,每个plan_item对应数组里的一个Plan对象。
  • plan_item.PriceId:直接从展开后的对象中提取PriceId字段,返回的就是单个字符串值,不会出现长度超限的问题,Alteryx可以轻松处理。

针对你的示例数据验证

用你提供的示例data值:

"{\"Plan\": [{\"Features\": [], \"PriceId\": \"Monthly\", \"Id\": \"xyz\", \"bool\": false}]}"

执行上面的SQL后,会返回一行结果:Monthly,完全符合你的需求。

如果Plan数组里有多个对象,这个SQL会自动返回多行,每个对象的PriceId都会被提取出来,非常灵活。

内容的提问来源于stack exchange,提问作者Axel Petursson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:25:18