json查询的字段顺序

h22fl7wq  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(714)

我有以下几点 MySQL json查询:

SELECT
  json_object('personId', p.id, 'personName', p.name, 'personAge', p.age)
FROM
  PEOPLE p;

我注意到了 json_object 不按查询中枚举的顺序返回字段,是否可以更改?如果我要同样的订单,我可以吗?
例如,输出可以是:

{
  "personAge": 35,
  "personId": 12,
  "personName": "john"
}

但我希望它永远是:

{
  "personId": 12,
  "personName": "john",
  "personAge": 35
}
ql3eal8s

ql3eal8s1#

我认为你不能管理生成的密钥的顺序 JSON . 如果我们提到这一点:json值的规范化、合并和自动 Package ,我们可以看到 JSON 值包括下一个逻辑:
为了提高查找效率,它还对json对象的键进行排序。您应该知道,此订购的结果可能会发生更改,并且不能保证在各个版本中保持一致。
然后,在后面的一段中,我们可以看到:
生成json值的mysql函数(参见第12.17.2节“创建json值的函数”)总是返回标准化值。
总之, json_object() 是一个返回 JSON 值,此值将被规范化,并且部分规范化过程可能会影响 JSON keys .

相关问题