【发布时间】:2015-01-21 11:31:38
【问题描述】:
我有一张桌子:
CREATE TABLE test (
item_id INTEGER NOT NULL,
item_name VARCHAR(255) NOT NULL,
mal_item_name VARCHAR(255),
active CHAR(1) NOT NULL,
data_needed CHAR(1) NOT NULL,
parent_id INTEGER);
查询:
select array_to_json(array_agg(row_to_json(t)))
from (select item_id as id,
item_name as text,
parent_id as parent,
(mal_item_name,data_needed) as data
from test) t
产生结果:
[{"id":1,"text":"Materials","parent":0, "data": {"f1":null,"f2":"N"}},
{"id":2,"text":"Bricks","parent":1, "data":{"f1":null,"f2":"N"}},
{"id":3,"text":"Class(high)","parent":2, "data":{"f1":null,"f2":"Y"}},
{"id":4,"text":"Class(low)","parent":2, "data":{"f1":null,"f2":"Y"}}]
原来的字段名称mal_item_name和data_needed被f1和f2替换。
如何获取带有字段名本身的 JSON?文档说通过为这两个字段创建一个类型。有其他选择吗?
【问题讨论】:
-
你的 Postgres 版本对这个问题很重要。
标签: json postgresql field anonymous