【问题标题】:postgres 9.3 json array of strings to textpostgres 9.3 json字符串数组到文本
【发布时间】:2016-04-20 08:26:15
【问题描述】:

使用 PostgreSQL 9.3,json_array_elements 函数将数组中的每个字符串元素作为 json 字符串返回。

select value from json_array_elements('["a", "b"]');

value 
-------
"a"
"b"

我想将这些转换为常规的 Postgres TEXT 值,但我不知所措。我试过 value::TEXT 但它们仍然是双引号,即 json 字符串。

【问题讨论】:

    标签: json postgresql


    【解决方案1】:

    就这么简单:

    select value from json_array_elements_text('["a", "b"]');
    

    【讨论】:

    • 如果使用 postgres 9.4+,这将是一种方法
    • 要走的路是升级然后{;-)
    【解决方案2】:

    我想你想要这个。

    select REPLACE(value::TEXT,'"','') from json_array_elements('["a", "b"]');
    

    【讨论】:

    • 这是我希望避免的。诉诸 REPLACE 似乎是首先做错事的一种解决方法。我的用例是一次性模式迁移脚本,所以没关系。我仍然希望看到一个“更清洁”的解决方案。
    • 我猜因为 " 被视为文本,所以如果不替换它,您将无法获取数据。
    • 我选择了这个,因为干净且正确的方法仅在 postgres 9.4 中以 json_array_elements_text 函数的形式添加。
    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多