Big Query中的JSON问题

时间:2015-06-30 10:58:15

标签: json google-bigquery

我有解析表中一列的json数据的场景。 问题是响应列下面为数据存储区备份到BigQuery生成的json。它已附加到每个数据上。

Reponse": "[
  {
    \"questionId\":5121566669012992,
    \"answereId\":0,
    \"answeredText\":\"Summer\"
  },{
    \"questionId\":5166851730440192,
    \"answereId\":0,
    \"answeredText\":\"Barcelona\"
  },{
    \"questionId\":6304057064947712,
    \"answereId\":0,
    \"answeredText\":\"Kitesurf\"
  }
]"

如何解析下面的内容以使用BigQuery获取questionId的值?

1 个答案:

答案 0 :(得分:1)

JSON_EXTRACT无法返回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;

返回:

+-----+------------------+---+
| Row |       str        |   |
+-----+------------------+---+
|   1 | 5121566669012992 |   |
+-----+------------------+---+