如何在PostgreSQL中设置和打印json对象的值?

问题描述

到目前为止,我所做的是:

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","Html"]}

解决方法

您的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","Html"]
            }';
BEGIN 
    SELECT jsonObject->'Name' into namz;
    raise 'JSON value Name is %',namz;
END
$do$

问题在别处。例如。此块的最后一行将不执行任何操作(plpgpsql中的SELECT namz)