SQL: 在PostgreSQL中,json_pretty()的等价函数是什么?

14

这个MySQL函数的等价物是什么?

SELECT JSON_PRETTY('{"a": 1, "b": 2, "c": 3}') AS Result
  FROM table;

格式化的JSON:

+------------------------------+
| Result                       |
+------------------------------+
| {                            |
|   "a": 1,                    |
|   "b": 2,                    |
|   "c": 3                     |
| }                            |
+------------------------------+

我尝试了文档中提到的 jsonb_pretty(),但没有返回任何内容。


3
jsonb_pretty是一个PostgreSQL函数,用于将存储在JSONB数据类型中的JSON文本格式化为易读的形式。您可以在dbfiddle.uk网站上访问具有示例代码的PostgreSQL 12数据库,并使用该函数演示其行为。 - user330315
1个回答

19

您需要的是jsonb_pretty()函数,该函数从9.5版本开始在Postgres中提供:

SELECT jsonb_pretty('{"a": 1, "b": 2, "c": 3}') AS result

DB Fiddle演示:

{
  "a": 1,
  "b": 2,
  "c": 3
}
请注意,这仅适用于jsonb数据类型。如果您的输入是json,您需要先将其转换类型。 此外,请注意:生成的输出看起来像 json,但实际上是一个字符串。因此,您需要将其转换回jsonb(或json),才能在其上使用任何其他json/jsonb函数。

一种类型转换的方法是 ::<type>。例如,在这里,'{"a": 1, "b": 2, "c": 3}' **::jsonb**。 - Randall
应该标记为答案。 - Riza Khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接