SQL:postgreSQL 中 json_pretty() 的等价物是什么

fla*_*ith 14 sql postgresql json dataformat jsonb

这个 MySQL 函数相当于什么

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

格式化 JSON:

+------------------------------+
| Result                       |
+------------------------------+
| {                            |
|   "a": 1,                    |
|   "b": 2,                    |
|   "c": 3                     |
| }                            |
+------------------------------+
Run Code Online (Sandbox Code Playgroud)

我已经jsonb_pretty()按照文档中提到的方式尝试过,但没有任何可用的

GMB*_*GMB 19

你想要的jsonb_pretty()9.5 版开始就可以在 Postgres 中使用开始就可以在 Postgres 中使用:

\n
SELECT jsonb_pretty(\'{"a":1, "aa":2, "c":3, "b":4, "b":5}\') AS result\n
Run Code Online (Sandbox Code Playgroud)\n

DB Fiddle 演示

\n
{\n\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87"a": 1,\n\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87"b": 5,\n\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87"c": 3,\n\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87\xe2\x80\x87"aa": 2\n}\n
Run Code Online (Sandbox Code Playgroud)\n

jsonb类型强制内部键顺序,因此转换到它可能会重新排序您的json. 它还会丢弃标记之间的空格,并仅保留重复键的最后一个值。来回json转换jsonb不会恢复原始顺序、空格或重复键。

\n

jsonb_pretty()仅适用于jsonb数据类型。如果您的输入是json,则需要先进行转换。作为格式化函数,它返回 type text,类似于MySQL 的json_pretty()返回longtext方式。将其转换回json/jsonb或恢复为未处理的值以继续使用 json函数和运算符

\n