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

如何在BigQuery中将JSON作为原始字符串解析获取age字段完整值

解决JSON字段带转义双引号的提取问题

你的核心问题是SQL字符串转义规则与JSON转义规则冲突,导致传入解析函数的JSON不合法,最终返回空结果。以下是针对不同SQL引擎的解决方案:

SQL Server

SQL Server中用两个双引号表示字符串里的一个双引号,无需反斜杠:

SELECT JSON_VALUE(data, '$.age') AS age
FROM (
  SELECT '{"name": "Jakob", "age":"""6"""}' AS data
) a;

执行后会返回"6",即你期望的""6""(结果显示时双引号会被包裹)。

MySQL

MySQL中反斜杠是转义字符,要表示JSON里的转义双引号,需要写两个反斜杠:

SELECT JSON_EXTRACT(data, '$.age') AS age
FROM (
  SELECT '{"name": "Jakob", "age":"\\"6\\""}' AS data
) a;

返回结果为"\"6\"",实际显示等价于"6"。

BigQuery

BigQuery同样需要用双反斜杠转义,使用JSON_EXTRACT_SCALAR即可:

SELECT JSON_EXTRACT_SCALAR(data, '$.age') AS age
FROM (
  SELECT '{"name": "Jakob", "age":"\\"6\\""}' AS data
) a;

返回结果为"6",符合预期。

关键原因

你之前的查询中,SQL会把字符串里的\"直接解析为",导致生成的JSON变成{"name": "Jakob", "age":"6"}(age的值丢失了闭合引号),属于非法JSON,因此解析函数返回空。调整转义方式后,JSON结构合法,就能正确提取带双引号的age值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:25:21