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

约坦·奥菲克(Yotam Ofek)

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

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

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

UPDATE table_name SET json_column=parse_json(string_column);

我看了一下Postgres的JSON函数,尽管似乎很琐碎,但似乎没有一种方法可以做到这一点。作为记录,我的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)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

解析嵌套的字符串化 json 对象

不使用 JSON 解析字符串对象

JSON使用已经作为值的JSON字符串对对象进行字符串化

Postgres 查询将字符串化的 json 对象转换为 jsonb 对象

解析字典的最快pythonic方法,其中值是字节字符串化json对象

无法解析具有mongo db对象ID以及“ \”的json序列化字符串

使用JSON从字符串解析数组?

使用jq解析JSON字符串

使用json解析空字符串

将JSON查询字符串解析为JSON对象

如何解析json字符串并迭代json对象

解析包含Json字符串的JSON对象

无法将字符串Json解析为Json对象

无法使用Circe JSON解析器创建通过JSON字符串的对象

使用解析/切片的子字符串的内容实例化对象属性?

使用 localStorage 中的嵌套数组对复杂对象进行字符串化和解析

使用 Batch 和 JQ 解析包含多个字符串化 json 的 JSON

Postgres JSON插入的原始参数化字符串

当数据是字符串而不是对象时,如何在android中使用解析相同的json响应?

如何使用python获取(解析)Json嵌套字符串(来自API)数据,如对象

仅使用字符串和值解析JSON对象

使用Jackson的ObjectMapper解析具有动态类型(字符串或对象)的值的JSON

使用节点中嵌套对象的字符串文字进行 JSON 解析

javaScript:使用JSON解析字符串对象。parse删除引用

在 Android 中使用 3 层(对象、数组、字符串)解析 JSON

将 Javascript 对象解析为类似 JSON 的字符串,但使用单引号

使用 Jackson 将 Json 字符串解析为 Kotlin 对象抛出 InvalidDefinitionException

解析文件路径字符串到json对象

Javascript:解析字符串中的json对象数组