gpt4 book ai didi

sql - 使用 Postgres 解析字符串化的 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 11:56:34 27 4
gpt4 key购买 nike

我一直在使用 Postgres 将 JSON 对象存储为字符串,现在我想利用 PG 内置的 jsonjsonb 类型来更有效地存储对象.

基本上,我想解析字符串化的 JSON 并将其放入 PG 中的 json 列中,而不必求助于将所有值读入 Python 并在那里解析它们。

理想情况下,我的迁移应该如下所示:

UPDATE table_name SET json_column=parse_json(string_column);

我看了Postgres's JSON functions ,而且似乎没有这样做的方法,即使它看起来很微不足道。郑重声明,我的 JSON 对象只是一维字符串数组。

有什么办法吗?

最佳答案

不需要 parse_json 列,只需更改列的类型即可:

ALTER TABLE table_name
ALTER COLUMN json_column TYPE json USING json_column::json;

请注意,如果您计划对这些值执行大量 JSON 操作(即从对象中提取元素、修改对象等),最好使用 jsonbjson 应该只用于存储 JSON 数据。此外,正如 Laurenz Albe 指出的那样,如果您不需要对这些值执行任何 JSON 操作,并且您对 postgresql 可以对它们执行的验证不感兴趣(例如,因为您相信源始终提供有效的 JSON),然后使用 text 是一个完全有效的选项(或 bytea)。

关于sql - 使用 Postgres 解析字符串化的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39615667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com