Json 列的值

Json values to columns

我是大查询的新手,我正在尝试将 json 值的行解析为列,单行中的json 值如下所示

  {
      "event_params": [{
        "key": "entrances",
        "value": {
          "string_value": null,
          "int_value": "1",
          "float_value": null,
          "double_value": null
        }
      }, {
        "key": "ga_session_id",
        "value": {
          "string_value": null,
          "int_value": "1647758422",
          "float_value": null,
          "double_value": null
        }
      }, {
        "key": "firebase_screen_class",
        "value": {
          "string_value": "Home",
          "int_value": null,
          "float_value": null,
          "double_value": null
        }
      }, {
        "key": "firebase_event_origin",
        "value": {
          "string_value": "auto",
          "int_value": null,
          "float_value": null,
          "double_value": null
        }
      }, {
        "key": "ga_session_number",
        "value": {
          "string_value": null,
          "int_value": "775",
          "float_value": null,
          "double_value": null
        }
      }, {
        "key": "firebase_screen_id",
        "value": {
          "string_value": null,
          "int_value": "4463573641295231098",
          "float_value": null,
          "double_value": null
        }
      }]

}

我不知道如何解析列中的每一行, 我希望 table 看起来像这样
钥匙 |价值 | string_value |int_value |float_value | double_value |
有办法吗? , 谢谢

假设您的 json 对象在一列中,您可以使用 json 函数 json_extract_array 结合 unnest 将数组的所有元素作为一行。之后,由你选择另一个json function来提取数组每个元素的值。

select
    json_value(events, "$.key") as key,
    json_value(events, "$.value.string_value") as string_value,
    json_value(events, "$.value.int_value") as int_value,
     .
     .
     .
from
  example, unnest(json_extract_array(json_payload_col, "$.event_params")) as events