我对此进行了很多研究,但仍然无法回答.我在用PostgreSQL.在下面的示例中,列名是"sections",列类型是json[].
我的专栏在数据库中看起来像这样:
sections
[{"name" : "section1",
"attributes": [{"attrkey1": "value1",
"attrkey2": "value2"},
{"attrkey3": "value3",
"attrkey4": "value4"}]
},
{"name" : "section2",
"attributes": [{"attrkey3": "value5",
"attrkey6": "value6"},
{"attrkey1": "value7",
"attrkey8": "value8"}]
}]
这是json数组,我想在结果中得到"attrkey3".为了从Json获取特定的密钥,我可以使用json_extract_path_text(json_column, 'json_property')
,这非常好.但我不知道如何从json[]获取一些属性.
如果我讨论上面的例子,我想在结果中显示属性"attrkey2"的值.我知道这是一个数组,因此它的工作方式可能与通常的不同,例如,我的数组的所有值都将作为不同的行,因此我可能必须编写子查询,但不知道如何执行.
此外,我不能静态地编写索引,也不能从某个特定的索引中获取json元素的属性.我的查询将动态生成,所以我永远不会知道json数组中有多少元素.
我看到了一些静态示例,但不知道如何在我的 case 中实现它.有人能告诉我怎么做吗?