Javascript 如何在snowflake中转换数组对象

Javascript 如何在snowflake中转换数组对象,javascript,snowflake-cloud-data-platform,snowsql,Javascript,Snowflake Cloud Data Platform,Snowsql,我想将下面的对象数组转换成另一种形式,varname被忽略,因为它不是必需的,key和value用于生成输出形式。任何线索将不胜感激 输入阵列: [ { 键:string_U6, 价值:格兰德瓦格纳, varname:页面铭牌 }, { 键:string_U13, 价值:2021年, 年份 } ] 输出 [ { 串_U6:大瓦格纳 }, { 字符串_U13:2021 } ]您可以尝试使用以下方法: var-input=[{key:string_U6,value:grandwagoneer,va

我想将下面的对象数组转换成另一种形式,varname被忽略,因为它不是必需的,key和value用于生成输出形式。任何线索将不胜感激

输入阵列: [ { 键:string_U6, 价值:格兰德瓦格纳, varname:页面铭牌 }, { 键:string_U13, 价值:2021年, 年份 } ]

输出

[ { 串_U6:大瓦格纳 }, { 字符串_U13:2021 } ]

您可以尝试使用以下方法:

var-input=[{key:string_U6,value:grandwagoneer,varname:page铭牌},{key:string_U13,value:2021,varname:year}]; var output=input.mapfunctionentry{ 设obj={}; obj[entry.key]=entry.value; 返回obj; }; console.logoutput 您可以尝试使用以下方法:

var-input=[{key:string_U6,value:grandwagoneer,varname:page铭牌},{key:string_U13,value:2021,varname:year}]; var output=input.mapfunctionentry{ 设obj={}; obj[entry.key]=entry.value; 返回obj; };
console.logoutput 当问题问及如何在snowflake中转换数组对象时,我想分享snowflake的方法:

-- SQL to create a sample table with data

create table sample_table (v variant ) 
as select parse_json(' [ { "key": "string_U6", "value": "grandwagoneer", "varname": "pagenameplate" },
{ "key": "string_U13", "value": "2021", "varname": "year" } ]');
    
-- query to parse the variant and create the array:

select ARRAY_AGG( OBJECT_CONSTRUCT(i.value:key::varchar, i.value:value::varchar) )  
from sample_table,
lateral flatten ( sample_table.v ) i;

它将产生您想要的精确输出。

当有人问如何在snowflake中转换数组对象时,我想分享snowflake的实现方法:

-- SQL to create a sample table with data

create table sample_table (v variant ) 
as select parse_json(' [ { "key": "string_U6", "value": "grandwagoneer", "varname": "pagenameplate" },
{ "key": "string_U13", "value": "2021", "varname": "year" } ]');
    
-- query to parse the variant and create the array:

select ARRAY_AGG( OBJECT_CONSTRUCT(i.value:key::varchar, i.value:value::varchar) )  
from sample_table,
lateral flatten ( sample_table.v ) i;

它将产生您想要的精确输出。

您能提供一个用于转换的代码吗?您能提供一个用于转换的代码吗?