pgsql关于json的简单用法
--這是個json字符串
select '{"name":"张三","age":34}';
--這是個json
select '{"name":"张三","age":34}'::json;
--這是個json
select json('{"name":"张三","age":34}');
--這也是個json,只不過這個json是個數組
select '[{"name":"张三","age":34},{"name":"李四","age":25}]'::json;
?以下也是json
-- 简单标量/基本值
-- 基本值可以是数字、带引号的字符串、true、false或者null
SELECT '5'::json;
-- 有零个或者更多元素的数组(元素不需要为同一类型)
SELECT '[1, 2, "foo", null]'::json;
-- 包含键值对的对象
-- 注意对象键必须总是带引号的字符串
SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json;
-- 数组和对象可以被任意嵌套
SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;
json操作符
操作符 | 右操作数类型 | 描述 | 例子 | 例子结果 |
---|
-> | int | 获得 JSON 数组元素(索引从 0 开始,负整数结束) | '[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->2 | {"c":"baz"} | -> | text | 通过键获得 JSON 对象域 | '{"a": {"b":"foo"}}'::json->'a' | {"b":"foo"} | ->> | int | 以文本 形式获得 JSON 数组元素 | '[1,2,3]'::json->>2 | 3 | ->> | text | 以文本 形式获得 JSON 对象域 | '{"a":1,"b":2}'::json->>'b' | 2 | #> | text[] | 获取在指定路径的 JSON 对象 | '{"a": {"b":{"c": "foo"}}}'::json#>'{a,b}' | {"c": "foo"} | #>> | text[] | 以文本 形式获取在指定路径的 JSON 对象 | '{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}' | 3 |
|