【发布时间】:2023-03-03 19:10:01
【问题描述】:
我在 postgres 中有一个表,其中包含一个 json[] 数据类型的字段。
该列存储的数据结构如下:
[{
"sym": "BTC",
"enn": "Bitcoin",
"fan": "",
"prc": 7284.46,
"c24": -4.33,
"mkc": 124460367747.02,
"mkp": 0
}, {
"sym": "ETH",
"enn": "Ethereum",
"fan": "",
"prc": 571.735,
"c24": -5.23,
"mkc": 57166582578.235,
"mkp": 0
}, {
"sym": "XRP",
"enn": "Ripple",
"fan": "",
"prc": 0.625291,
"c24": -6.28,
"mkc": 24539115471.842476,
"mkp": 0
}, {
"sym": "BCH",
"enn": "Bitcoin Cash",
"fan": "",
"prc": 1034.65,
"c24": -7.09,
"mkc": 17771148400,
"mkp": 0
}, {
"sym": "EOS",
"enn": "EOS",
"fan": "",
"prc": 13.2186,
"c24": -7.95,
"mkc": 11845841674.9512,
"mkp": 0
}]
我需要的是使用特定的"sym" 键获取 json。像这样:
{
"sym": "BTC",
"enn": "Bitcoin",
"fan": "",
"prc": 7284.46,
"c24": -4.33,
"mkc": 124460367747.02,
"mkp": 0
}
我试过了:
select to_json(data)::json ->'sym'->'BTC'from my_table;
但它不起作用。我知道它不起作用,因为我的字段是一个数组,而不是 json 并尝试了这个
select json_array_elements(to_json(data)::json->'sym'->'BTC') from my_table;
但它也不起作用。 有什么帮助吗?
【问题讨论】:
-
我认为如果你在一个简单的
json列中存储一个“json 数组”会更容易。 JSON 数组对我来说没有意义。
标签: arrays json postgresql