首页 > 解决方案 > 在 Snowflake 中使用不区分大小写的列名解析 JSON 数据

问题描述

我正在尝试解析 Json 文档并创建一个视图。在解析 JSON 时,我们可以使用不区分大小写的列名。有什么办法吗?

SELECT 
   parse_json(column1) AS json_data
FROM VALUES
   ('{
      "ID": 1,
      "color": "black",
      "category": "hue",
      "type": "primary",
      "code": {
        "rgb": "255,255,255",
        "hex": "#000"
      }
    }') as raw_json;

这将运行并提取数据, select json_data:ID::integer as ID from colors

这不会提取数据。有什么方法可以使下面也起作用吗? select json_data:id::integer as ID from colors

标签: javascriptsqljsonsnowflake-cloud-data-platform

解决方案


您可以将GET_IGNORE_CASE用作:

SELECT  GET_IGNORE_CASE(to_object(json_data),'id')::integer  as ID1,
        GET_IGNORE_CASE(to_object(json_data),'ID')::integer  as ID2 
FROM
(
  SELECT 
     parse_json(column1) AS json_data
  FROM VALUES
     ('{
        "ID": 1,
        "color": "black",
        "category": "hue",
        "type": "primary",
        "code": {
          "rgb": "255,255,255",
          "hex": "#000"
        }
      }') as raw_json
  )

推荐阅读