我有如下数据:
[{"key": "key1", "value": "value1"}, {"key": "key2", "value": "value2"}, ...]
我想以以下格式将其保存到jsonb
字段中:
{"key1": "value1", "key2": "value2", ...}
是否可以在postgres
的{{1}}中将初始数组转换为json,或者我唯一的选择是在应用程序中更早地将其转换为json?
答案 0 :(得分:2)
SELECT
jsonb_object_agg(elem ->> 'key', elem ->> 'value')
FROM (
SELECT jsonb_array_elements('[{"key": "key1", "value": "value1"}, {"key": "key2", "value": "value2"}]'::jsonb) elem
) s
jsonb_array_elements
)jsonb_object_agg
值作为新键并与key
相同,将它们聚合在一起(value
答案 1 :(得分:0)
这与您执行查询以检索数据的方式,所使用的框架...都需要更多信息来解答。
为了格式化json,我将使用map()函数,如下所示:
val query = blacklistControl.select(to_json(struct("Column1","Column2")).alias("value"))
.writeStream
.format("kafka")
.option("checkpointLocation", "/your/empty/directory")
.option("kafka.bootstrap.servers", "xx.xx.xx.xx:9092")
.option("kafka.security.protocol","SASL_PLAINTEXT")
.option("kafka.sasl.kerberos.service.name","kafka")
.option("topic", "topic_xdr")
.start()