JSON 大查询中的问题
JSON issue in Big Query
我有解析 json 数据的方案,该数据属于 table 中的一列。
问题是数据存储备份到 BigQuery 生成的 json 响应列下方。它已“\”附加到每个数据。
Reponse": "[
{
\"questionId\":5121566669012992,
\"answereId\":0,
\"answeredText\":\"Summer\"
},{
\"questionId\":5166851730440192,
\"answereId\":0,
\"answeredText\":\"Barcelona\"
},{
\"questionId\":6304057064947712,
\"answereId\":0,
\"answeredText\":\"Kitesurf\"
}
]"
如何使用 BigQuery 解析以下内容以获取 questionId 的值?
JSON_EXTRACT 不能 return REPEATED 字段,它只能进行一次匹配 - 因此不支持 *
您可以使用硬编码索引获得第一个位置,如
SELECT JSON_EXTRACT_SCALAR('[
{
\"questionId\":5121566669012992,
\"answereId\":0,
\"answeredText\":\"Summer\"
},{
\"questionId\":5166851730440192,
\"answereId\":0,
\"answeredText\":\"Barcelona\"
},{
\"questionId\":6304057064947712,
\"answereId\":0,
\"answeredText\":\"Kitesurf\"
}
]', '$[0].questionId') AS str;
这个returns:
+-----+------------------+---+
| Row | str | |
+-----+------------------+---+
| 1 | 5121566669012992 | |
+-----+------------------+---+
我有解析 json 数据的方案,该数据属于 table 中的一列。 问题是数据存储备份到 BigQuery 生成的 json 响应列下方。它已“\”附加到每个数据。
Reponse": "[
{
\"questionId\":5121566669012992,
\"answereId\":0,
\"answeredText\":\"Summer\"
},{
\"questionId\":5166851730440192,
\"answereId\":0,
\"answeredText\":\"Barcelona\"
},{
\"questionId\":6304057064947712,
\"answereId\":0,
\"answeredText\":\"Kitesurf\"
}
]"
如何使用 BigQuery 解析以下内容以获取 questionId 的值?
JSON_EXTRACT 不能 return REPEATED 字段,它只能进行一次匹配 - 因此不支持 *
您可以使用硬编码索引获得第一个位置,如
SELECT JSON_EXTRACT_SCALAR('[
{
\"questionId\":5121566669012992,
\"answereId\":0,
\"answeredText\":\"Summer\"
},{
\"questionId\":5166851730440192,
\"answereId\":0,
\"answeredText\":\"Barcelona\"
},{
\"questionId\":6304057064947712,
\"answereId\":0,
\"answeredText\":\"Kitesurf\"
}
]', '$[0].questionId') AS str;
这个returns:
+-----+------------------+---+
| Row | str | |
+-----+------------------+---+
| 1 | 5121566669012992 | |
+-----+------------------+---+