SQL:在PostgreSQL中,json_pretty()的等效函数是什么?
SQL:在PostgreSQL中,json_pretty()的等效函数是什么?
这个MySQL函数的等价函数是什么?
SELECT JSON_PRETTY('{"a": 1, "b": 2, "c": 3}') AS Result FROM table;
格式化的JSON:
+------------------------------+
| Result |
+------------------------------+
| { |
| "a": 1, |
| "b": 2, |
| "c": 3 |
| } |
+------------------------------+
我尝试了文档中提到的jsonb_pretty()
,但没有找到。
问题的原因是用户想要在PostgreSQL中找到与MySQL中的json_pretty()函数相对应的函数。他们希望能够格式化JSON数据以便于阅读。
解决方法是使用PostgreSQL中的jsonb_pretty()函数。该函数在PostgreSQL 9.5版本及以上版本中可用。它可以将JSON数据格式化为易于阅读的形式。
以下是一个示例SQL查询,演示如何使用jsonb_pretty()函数:
SELECT jsonb_pretty('{"a":1, "aa":2, "c":3, "b":4, "b":5}') AS result
执行上述查询将返回格式化后的JSON数据:
{
"a": 1,
"b": 5,
"c": 3,
"aa": 2
}
需要注意的是,jsonb类型会强制内部键的顺序,因此将其转换为jsonb可能会重新排序JSON数据。此外,它会丢弃标记之间的空格,并且对于重复的键只保留最后一个值。从json转换为jsonb再转换回来将无法恢复原始顺序、空格或重复的键。
jsonb_pretty()函数只适用于jsonb数据类型。如果输入是json类型,则需要先进行类型转换。作为格式化函数,它返回的是text类型,类似于MySQL的json_pretty()函数返回longtext类型。可以将其再次转换回json/jsonb类型,或者将其还原为未处理的值以继续使用json函数和操作符。
一种类型转换的方法是使用::
以上就是解决该问题的方法。