如何解决包含对象数组的 Postgresql JSON 列的查询返回空值
我有一个名为 heart_rate_json
的 Postgresql 表,其中有一个名为 data
的 JSON 列,其中包含一个像这样的对象数组:
[{
"dateTime" : "01/24/15 21:07:45","value" : {
"bpm" : 70,"confidence" : 0
}
},{
"dateTime" : "01/24/15 21:08:30","value" : {
"bpm" : 64,"confidence" : 2
}
}]
SELECT
data -> 'dateTime' AS datetime,data -> 'value' ->> 'bpm' AS bpm,data -> 'value' ->> 'confidence' AS confidence
FROM heart_rate_json;
查询结果有三列,但所有值都是[null]
。
选择 data
列确实会返回包含整个对象数组的结果:
SELECT data FROM heart_rate_json;
我在这里遗漏了什么?
解决方法
您首先需要将一个 JSON 数组扩展为一组 JSON 元素(您可以使用:json_array_elements(json)
):
SELECT
data -> 'dateTime' AS datetime,data -> 'value' ->> 'bpm' AS bpm,data -> 'value' ->> 'confidence' AS confidence
FROM (SELECT json_array_elements(data) AS data FROM heart_rate_json) AS sq;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。