如何在BigQuery中将STRING列转为JSON列且不引入反斜杠?
BigQuery将JSON格式字符串列转换为JSON类型列的方法
你的表结构示例如下(已转译原字符串中的转义引号):
WITH tmp as ( SELECT '{"1":"1","2":"2","3":"3"}' as mycol union all SELECT '{"4":"4","5":"5","6":"6"}' )
要把mycol这个STRING列转换成JSON类型列,同时避免使用TO_JSON时出现的反斜杠,直接用SAFE.PARSE_JSON()函数即可,示例代码如下:
WITH tmp as ( SELECT '{"1":"1","2":"2","3":"3"}' as mycol union all SELECT '{"4":"4","5":"5","6":"6"}' ) SELECT mycol as original_string, SAFE.PARSE_JSON(mycol) as json_column FROM tmp
关键说明:
SAFE.PARSE_JSON()会把符合JSON格式的字符串直接解析成JSON类型,转换后的列Type就是JSON,且不会引入额外的反斜杠。- 不要用
TO_JSON(),因为它的作用是把任意类型数据转换成JSON格式的字符串,会把输入的原始字符串当成普通文本处理,自动转义其中的引号,导致出现不必要的反斜杠。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

