将带有 Varchar 列的 table 转换为 Snowflake 中的自定义 JSON

Converting table with Varchar columns to custom JSON in Snowflake

我有一个 table 具有以下数据

START_DATE NAME ID
01/18/2022 JOHN 10
01/19/2022 ADAM 20

我正在尝试将其转换为 JSON 自定义格式,如下所示 -

{
 "labels":{
           "name":"JOHN",
           "id":[10]
          }
 "values":{
           "startDate":"01/18/2022"
          }
}

PARSE_JSON 方式

SELECT parse_json('{"values": {startDate: A.STARTDATE}}')
FROM TABLE_A A;

导致错误

Error parsing JSON: unknown keyword "A", pos 25

OBJECT_CONSTRUCT 导致将列名转换为键,将列值转换为值。

请告知如何在 Snowflake 中的 JSON 转换中使用自定义字段名称。

根据给定的数据重命名对象名称并将 ID 更改为数组:

create table test1 values(START_DATE date, NAME string,ID number);
insert into test1(START_DATE, NAME,ID ) values('01/18/2022','JOHN', 10);
insert into test1(START_DATE, NAME,ID ) values('01/19/2022','ADAM', 20);
    Select
        OBJECT_CONSTRUCT('ID',id::array,'NAME',name) as label_obj,
        OBJECT_CONSTRUCT(
            'start_date',
            START_DATE::string) as start_dt_obj,
            object_insert(object_construct('labels', label_obj), 'values', start_dt_obj) as final_json
            from
                Test1;