从红移表获取JSON数据

从红移表获取JSON数据,json,amazon-redshift,Json,Amazon Redshift,我想从红移表中以json字符串的形式检索SQL中的数据。有什么功能可以做到这一点吗 Postgres具有row_to_json函数,可在SQL语句中使用该函数以json的形式获取数据。红移中是否有类似的函数?根据您的需要,您可以使用以下函数之一: JSON\u EXTRACT\u PATH\u TEXT非常有用 我仍在试图弄清楚如何不必列出没有复合类型或数组的每一项,但这应该可以帮助您生成json,而无需执行字符串操作 CREATE OR REPLACE FUNCTION test_funct

我想从红移表中以json字符串的形式检索SQL中的数据。有什么功能可以做到这一点吗


Postgres具有row_to_json函数,可在SQL语句中使用该函数以json的形式获取数据。红移中是否有类似的函数?

根据您的需要,您可以使用以下函数之一:

JSON\u EXTRACT\u PATH\u TEXT
非常有用


我仍在试图弄清楚如何不必列出没有复合类型或数组的每一项,但这应该可以帮助您生成json,而无需执行字符串操作

CREATE OR REPLACE FUNCTION test_function 
  (userid int, firstname varchar, lastname varchar, email varchar)
RETURNS varchar(max) immutable as $$
    import json
    o = {
        "userid": userid,
        "firstname": firstname,
        "lastname": lastname,
        "email": email
    }
    return json.dumps(o)
 $$ LANGUAGE plpythonu;

这就是我们拥有Json文本的时候。我正在寻找从db行数据返回json,这与本文描述的内容一致。我想你必须手工制作JSON。如果您要通过应用程序与Redshift通信,那么将行转换为符合您需要的JSON对象应该很简单。我不认为以“我怀疑…”开头的注释可以最终回答这个问题
CREATE OR REPLACE FUNCTION test_function 
  (userid int, firstname varchar, lastname varchar, email varchar)
RETURNS varchar(max) immutable as $$
    import json
    o = {
        "userid": userid,
        "firstname": firstname,
        "lastname": lastname,
        "email": email
    }
    return json.dumps(o)
 $$ LANGUAGE plpythonu;