【发布时间】:2015-05-10 05:48:28
【问题描述】:
尝试将格式正确的 JSON 对象作为单个字段结果返回。
row_to_json() 效果很好,但返回多行。
SELECT row_to_json(ages) FROM (SELECT DISTINCT RIGHT('000' || TRIM(age),3) AS v FROM uspopulation GROUP BY v ORDER BY v) AS ages
生成的行是格式良好的 JSON,但每行一个:
{"v":"000"}
然后我想将该结果集处理成单个行/列结果中的数组:
SELECT array(
SELECT row_to_json(ages) FROM (SELECT DISTINCT RIGHT('000' || TRIM(age),3) AS v FROM uspopulation GROUP BY v ORDER BY v) AS ages
);
这样就达到了预期的效果。但是,它会在每个 JSON 对象周围添加双引号,并转义格式正确的 JSON 对象中的现有引号。
{"{\"v\":\"000\"}","{\"v\":\"001\"}","{\"v\":\"002\"}"}
那么我该如何关闭这种行为才能得到这样的结果:
{{"v":"000"},{"v":"001"},{"v":"002"}}
【问题讨论】:
标签: arrays json postgresql