【译】PostgreSQL 查询结果转为 JSON 格式
您知道 Postgres 提供了一个函数将查询结果集转为 JSON 数据类型吗?这个函数是 row_to_json
。
我们先创建一个表,它包含两个用户记录以以及一个 interests
的属性列:
1 | CREATE TABLE people |
row_to_json
函数最基本的使用方法是使用 ROW
行构造器,例如:
1 | SELECT row_to_json(ROW(name, age, interests)) FROM people; |
针对表中不同的类型,在最后的输出中都做了相应的转换,但是属性列的名称在输出中并没有体现出来。幸运的是我们可以通过子查询的方式来实现:
1 | SELECT row_to_json(q1) FROM (SELECT * FROM people LIMIT 1) q1; |
虽然与我们的示例无关,但我们还是需要提一下,row_to_json
提供了一个可选的参数 prettifies
用于格式化输出,想要启用它,您可以在上面的示例中使用 row_to_json(q1, true)
。
1 | SELECT row_to_json(q1, true) FROM (SELECT * FROM people LIMIT 1) q1; |