小编Seg*_*ult的帖子

如何查询postgres中jsonb字段中嵌套的json字符串?

在我们的数据库中,一个 JSONB 列包含一个对象,该对象具有一个属性,该属性是字符串编码的 JSON 对象。我需要在查询期间反序列化该字符串并检查其值。

create table datas (id int, data jsonb);
insert into datas (id, data) values (1, '{"key1": "{\"foo\": \"bar\"}"}');
Run Code Online (Sandbox Code Playgroud)

我可以选择字符串值,但将其转换为 JSONB 对象不起作用。这些查询都返回 null foo

select data->'key1'->'foo' from datas;
select to_json(data->'key1')->'foo' from datas;
select (data->'key1')::jsonb->'foo' from datas;
Run Code Online (Sandbox Code Playgroud)

dbfiddle:https://dbfiddle.uk/? rdbms=postgres_9.6&fiddle=9c0a9f7f1323a35051daba5177e52f57

postgresql json

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

json ×1

postgresql ×1