json - 如何在 postgres 中声明 JSON 字符串?
问题描述
在 POSTGRES 中有很多 json 解析的例子,它们从表中提取数据。我有一个方便的原始 json 字符串,想练习使用JSON 函数和运算符。是否可以在不使用表格的情况下做到这一点?或者......将其声明为变量的最直接方法是什么?就像是...
# Declare
foojson = "{'a':'foo', 'b':'bar'}"
# Use
jsonb_array_elements(foojson) -> 'a'
基本上,我希望最后一行打印到控制台或可包装在 SELECT 语句中,以便我可以快速“玩”其中一些运算符。
解决方案
您可以将其直接传递给函数
select '{"a": "foo", "b": "bar"}'::jsonb ->> 'a';
select *
from jsonb_each('{"a": "foo", "b": "bar"}');
select *
from jsonb_array_elements('[{"a": "foo"}, {"b": "bar"}]');
或者,如果您想假装,它是表格的一部分:
with data (json_value) as (
values
('{"a": "foo", "b": "bar"}'::jsonb),
('{"foo": 42, "x": 100}')
)
select e.*
from data d
cross join jsonb_each(d.json_value) as e;
with data (json_value) as (
values
('{"a": 1, "b": "x"}'::jsonb),
('{"a": 42, "b": "y"}')
)
select d.json_value ->> 'a',
d.json_value ->> 'b'
from data d;
推荐阅读
- python - 我不断收到 FileNotFoundError 试图分块一个大的 csv 文件
- c# - 通过保持线程模拟打字
- sql - 在 Postgres 中,我将如何检索列的默认值,最好是在插入语句中内联?
- python - 使用python从文本文件中删除括号中的多位文本
- python - 为什么 try except 块没有捕获 IndexError?
- azure - 子文件夹的 Azure 函数 blob 触发器
- parsing - 是否有解析器会以 JSON 格式输出 Isabelle/Isar AST?
- html - CSS 偏移工具提示
- python - 用于多类目标检测的分层 K 折叠?
- python - ImportError Django(但我认为是因为 python)