无法检索 json 对象值 postgresql 9.6
can not retrieve json object value postgresql 9.6
DO
$$
DECLARE
array_ json;
category_name text;
category_ json:='{"Maincategory":"Vehicle","Categoryname":"Car"}'::json;
BEGIN
category_name:=(SELECT category_ ->'Maincategory'::text) ;
array_:=(SELECT elements -> category_name FROM webuser.footable WHERE id=somenumber)::json;
raise notice '%',array_ ;
END
$$;
elements
(json)
|-------------------------------------------------------------------------------------|
|{"Vehicle": [{"Car": 3}, {"Truck": 1}], "Office": [{"Printer": 3}, {"Desk": 8}]} |
我有元素列,我想检索将存储在 array_ 变量中的 ([{"Car": 3}, {"Truck": 1}]
车辆数组。我得到 array_ 总是空的。这段代码有什么问题?
category_ ->'Maincategory'::text
将 return "Vehicle"
,而您需要字段的值...
改变(SELECT category_ ->'Maincategory'::text)
到
(SELECT category_ ->>'Maincategory'::text)
,喜欢这里:
b=# DO
b-# $$
b$# DECLARE
b$# array_ json;
b$# category_name text;
b$# category_ json:='{"Maincategory":"Vehicle","Categoryname":"Car"}'::json;
b$# elements json:= '{"Vehicle": [{"Car": 3}, {"Truck": 1}], "Office": [{"Printer": 3}, {"Desk": 8}]}';
b$# BEGIN
b$# category_name:=(SELECT category_ ->>'Maincategory'::text) ;
b$# raise info '%',(select elements->category_name);
b$# --array_:=(SELECT elements -> category_name FROM webuser.footable WHERE id=somenumber)::json;
b$# --raise notice '%',array_ ;
b$# END
b$# $$;
INFO: [{"Car": 3}, {"Truck": 1}]
DO
DO
$$
DECLARE
array_ json;
category_name text;
category_ json:='{"Maincategory":"Vehicle","Categoryname":"Car"}'::json;
BEGIN
category_name:=(SELECT category_ ->'Maincategory'::text) ;
array_:=(SELECT elements -> category_name FROM webuser.footable WHERE id=somenumber)::json;
raise notice '%',array_ ;
END
$$;
elements
(json)
|-------------------------------------------------------------------------------------|
|{"Vehicle": [{"Car": 3}, {"Truck": 1}], "Office": [{"Printer": 3}, {"Desk": 8}]} |
我有元素列,我想检索将存储在 array_ 变量中的 ([{"Car": 3}, {"Truck": 1}]
车辆数组。我得到 array_ 总是空的。这段代码有什么问题?
category_ ->'Maincategory'::text
将 return "Vehicle"
,而您需要字段的值...
改变(SELECT category_ ->'Maincategory'::text)
到
(SELECT category_ ->>'Maincategory'::text)
,喜欢这里:
b=# DO
b-# $$
b$# DECLARE
b$# array_ json;
b$# category_name text;
b$# category_ json:='{"Maincategory":"Vehicle","Categoryname":"Car"}'::json;
b$# elements json:= '{"Vehicle": [{"Car": 3}, {"Truck": 1}], "Office": [{"Printer": 3}, {"Desk": 8}]}';
b$# BEGIN
b$# category_name:=(SELECT category_ ->>'Maincategory'::text) ;
b$# raise info '%',(select elements->category_name);
b$# --array_:=(SELECT elements -> category_name FROM webuser.footable WHERE id=somenumber)::json;
b$# --raise notice '%',array_ ;
b$# END
b$# $$;
INFO: [{"Car": 3}, {"Truck": 1}]
DO