我有以下查询,它会生成添加了\"
的数据。不确定是否是字符串字节导致此问题,因为string_agg
生成字符串字节作为输出。
#standardSQL
SELECT
visitid,
fullVisitorId,
hits.hitNumber,
TO_JSON_STRING(ARRAY(
SELECT
AS STRUCT productSKU,
ARRAY(SELECT STRING_AGG(CONCAT('{"',CAST(index AS STRING), '":', '"', IFNULL(value,''), '"', '}'), ',') FROM UNNEST(customDimensions)) as productCustDimension
FROM
UNNEST(hits.product) p)) AS product
FROM
table_a
LEFT JOIN
UNNEST(hits) AS hits
LIMIT 10
以下是它产生的输出。在产品列中,productCustDimension
值是我正在使用的值,添加了"\
个字符。
我找到了一种方法来摆脱我提到的使用替换功能的额外字符,但它变得太脏了。我在寻找是否有更好的方法。我想要产品列如下
答案 0 :(得分:1)
问题在于"在TO_JSON_STRING中转义的字符。尝试运行查询,如下所示:
...
ARRAY(SELECT STRING_AGG(CONCAT('{',CAST(index AS STRING), ':', '', IFNULL(value,''), '', '}'), ',') FROM UNNEST(customDimensions)) as productCustDimension
...