【问题标题】:How to parse JSON file from a column in BigQuery如何从 BigQuery 的列中解析 JSON 文件
【发布时间】:2020-03-26 16:06:02
【问题描述】:

这是我要解析的 JSON 文件

[{"message":"Value","code":"1234"}]

我正在尝试解析来自 JSON 的消息 我认为挑战在于 JSON 以“[”开头,而不是更常见的“{”

这是我认为正确的查询,但显然不是

JSON_EXTRACT_SCALAR(response,'$[0].message')

请注意,“response”是列的名称,也就是 json_string_expr

【问题讨论】:

    标签: sql json google-bigquery


    【解决方案1】:

    可能是您的实际代码/查询中的拼写错误?
    按原样为我工作 - 请参阅下面的示例

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT '[{"message":"Value","code":"1234"}]' response
    )
    SELECT *, JSON_EXTRACT_SCALAR(response,'$[0].message')
    FROM `project.dataset.table`
    

    有输出

    Row response                            f0_  
    1   [{"message":"Value","code":"1234"}] Value   
    

    【讨论】:

    • 没关系,我又试了一次,它工作了,我认为它之前没有工作,因为我使用的是coalesce,但我在某个地方搞砸了。
    • 想知道我是否可以再寻求您的帮助。现在我正在尝试解析"{\n \"type\":\"invalid\",\n \"code\":\"invalidRequest\",\n \"details\":\"Missing or invalid Parameters\",\n \"moreInfo\":{\n \"fieldLevelErrors\":[\n {\n \"fieldName\":\"/*/prospect/identificationDocumentDetails[idType!=\\\"\\\"]/idNumber\",\n \"reasonCode\":\"Required/Invalid Format\",\n \"errorMessage\":\"Value\"\n }\n ]\n }\n}",老实说我不知道​​如何获取“errorMessage”
    【解决方案2】:

    你可以申请:

    WITH `project.dataset.table` AS (
      SELECT '{\n \"type\":\"invalid\",\n \"code\":\"invalidRequest\",\n \"details\":\"Missing or invalid Parameters\",\n \"moreInfo\":{\n \"fieldLevelErrors\":[\n {\n \"fieldName\":\"/*/prospect/identificationDocumentDetails[idType!=\\\"\\\"]/idNumber\",\n \"reasonCode\":\"Required/Invalid Format\",\n \"errorMessage\":\"Value\"\n }\n ]\n }\n}' response
    )
    SELECT JSON_EXTRACT(response,'$.details') as details, JSON_EXTRACT(response,'$.moreInfo.fieldLevelErrors[0].errorMessage') as error
    FROM `project.dataset.table`
    

    它返回以下结果:

    Row details                           error 
    1   "Missing or invalid Parameters" "Value"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多