首页 > 解决方案 > 如何将 MySQL 查询结果转换为 JSON 对象

问题描述

我打算将 MySQL 查询结果格式化为适合仪表板小部件的格式。所需的数据格式如下所示:

[{"label": "Name", "value":"Age"}, {"Amy":"4", "Sheryl":"5"}]

但是,目前,MySQL 输出如下所示:

[{"Name": "Amy","Age":"4"}, {"Name":"Sheryl","Age":"5"}]

我正在寻找一个 MySQL 查询,它可以将下面的输出格式化为上面的格式。这基本上需要我们

  1. 提取2个标题,即姓名和年龄,
  2. 将姓名和年龄转换为键值对,作为输出数组中的第二个元素。

标签: mysql

解决方案


你可以使用这样的东西。

例子:

| name | age|
| Mike | 23 |
| Roger| 25 |

输出将是:

[
  {
    "name": "Mike",
    "age": 23
  },
  {
     "name": "Roger",
     "phone": 25
  }
]


SELECT JSON_ARRAYAGG(JSON_OBJECT('name', name, 'age', age)) from yourTable;

另一个答案

SELECT json_object('name', name, 'age', age) FROM yourTable;

推荐阅读