在我的表格中,我有一个列,我将jsons数组保存为字符串,如下所示:
[
{
"id":0,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
{
"id":2,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
]
我想计算这个数组中jsons的数量。该数据库位于PostgreSQL 9.6.1中。
答案 0 :(得分:1)
您可以使用 json_array_length() 函数进行计数,但如果您的列是文本类型,则需要将列强制转换为json类型,如如下:
json_array_length(cast(your_table.column_name as json))
此外,如果您需要访问"停止"字段,您可以使用 json_array_elements() 并按照以下方式执行操作:
json_array_elements( cast(your_table.column_name as json))->'Stops'
要进一步访问,比如内部的字段"停止",您可以再次使用相同的功能:
json_array_elements( (json_array_elements( cast(your_table.column_name as json)))->'Stops')->'field1'
希望我能提供帮助。