Json属性不是来自Postgres的Order



我正在尝试如下查询,

OPT_VAR JSONB;
select 
json_build_object('CustomerProfile',t) into OPT_VAR 
from
(
select firstName,LastName,Type,Gender
from TABLE_NAME
)t;

我的预期输出如

{
"CustomerProfile": {
"firstName": "Sam",
"LastName": "Smith",
"Type": "A1",
"Gender": "Male"
}
}

但我得到了类似的东西

{
"CustomerProfile": {
"firstName": "Sam",
"Gender": "Male",
"LastName": "Smith",
"Type": "A1"
}
}

我唯一关心的是json属性的顺序。

json.org上的定义是:

对象是一组无序的名称/值对

因此,您不应该依赖于JSON中键的顺序。这可能就是Postgres不关心JSON输出顺序的原因。

在注释中,如a-horse所述-无名称

OPT_VAR JSON;而不是OPT_VAR JSONB;

最新更新