所以我的桌子看起来像这样
{"@timestamp":"2018-08-08T09:21:57.947+00:00","@version":"1","message":"bla bla"}
例如,我可以使用下面的json函数提取消息部分
JSON_EXTRACT_SCALAR(log,'$.message') AS message
但是当我尝试以相同方式提取时间戳记
JSON_EXTRACT_SCALAR(log,'$.@timestamp') AS timestamp
我收到错误“错误:JSONPath中不支持的运算符:@” 关于正确语法的任何想法吗?
答案 0 :(得分:3)
如果JSON密钥使用无效的JSONPath字符,则可以使用单引号和括号['']来转义这些字符。例如:
$ ['@ timestamp']
SELECT
json_extract_scalar('{"@timestamp":"2018-08-08T09:21:57.947+00:00"}',"$['@timestamp']")
有关更多示例,请访问:JSON Functions in Standard SQL