【问题标题】:How to set and print the value of json object in postgresql?如何在postgresql中设置和打印json对象的值?
【发布时间】:2020-10-15 06:50:22
【问题描述】:

到目前为止我所做的是:

DO
$do$
DECLARE
    namz Text;
    jsonObject json = 
            '{
                "Name": "Kshitiz Kala",     
                "Education": "B.Tech", 
                "Skills": ["J2EE", "JDBC", "Html"]
            }';
BEGIN 
    SELECT jsonObject->'Name' into namz;
    select namz;
END
$do$

我在这里没有找到任何成功。

实际问题是我将一个 json 对象传递给一个存储过程,该存储过程会将数据存储在三个不同的表中 1) 用户表包含 user_id、user_name、user_edu。 2)技能表包含skill_id、skill_name。 3) user_skill 表包含 id、user_id、usr_skill_id。

这是我从 Django 应用程序传递的 json 对象

{"Name": "Kshitiz Kala", "Education": "B.Tech", "Skills": ["J2EE", "JDBC", "Html"]}

【问题讨论】:

    标签: python sql django postgresql postgresql-9.1


    【解决方案1】:

    你的json代码没问题,检查一下:

    SELECT '{"Name": "Kshitiz Kala",     
                    "Education": "B.Tech", 
                    "Skills": ["J2EE", "JDBC", "Html"]
                }'::json->'Name'
    

    或在 pgplsql 中:

    DO
    $do$
    DECLARE
        namz Text;
        jsonObject json = 
                '{
                    "Name": "Kshitiz Kala",     
                    "Education": "B.Tech", 
                    "Skills": ["J2EE", "JDBC", "Html"]
                }';
    BEGIN 
        SELECT jsonObject->'Name' into namz;
        raise 'JSON value Name is %', namz;
    END
    $do$
    

    问题出在其他地方。例如。此块中的最后一行不会执行任何操作(在 plpgpsql 中选择 namz)

    【讨论】:

    • 如何将技能存储在数组中在“skill_s TEXT[];”中在 postgresql 中声明空数组是否正确?
    • select array_agg(json_array_elements_text('{"Name": "Kshitiz Kala", "Education": "B.Tech", "Skills": ["J2EE", "JDBC", "Html"] }'::json->'Skills'))一样使用json_array_elements_text
    猜你喜欢
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多