---
title: 如何转换查询结果为 JSON 数组-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何转换查询结果为 JSON 数组相关的常见问题和使用技巧，帮助您快速解决如何转换查询结果为 JSON 数组的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 如何转换查询结果为 JSON 数组

更新时间：2026-05-26 09:46

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

本文通过示例来介绍在 OceanBase 数据库 MySQL 和 Oracle 模式中如何转换查询结果为 JSON 数组。

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

## Oracle 模式

Oracle 模式在 V4.x 版本以前没有 `json_object` 函数来转换查询结果，所以需要手动来拼串解决。具体方法如下。

```shell
obclient [SYS]> create table j1(id int primary key, r1 int,r2 varchar(20));
Query OK, 0 rows affected (0.103 sec)

```

```shell
obclient [SYS]> insert into j1 values (1,2,'ob');
Query OK, 1 row affected (0.014 sec)

```

```shell
obclient [SYS]> insert into j1 values (2,10,'mysql');
Query OK, 1 row affected (0.003 sec)

```

```shell
obclient [SYS]> commit;
Query OK, 0 rows affected (0.011 sec)  

```

```shell
obclient [SYS]> select '[' || listagg('{"id":'||id||',"r1":'||r1||',"r2":"'||r2||'"}',',') within group (order by id)||']' as json_array from j1;

```

```shell
+-----------------------------------------------------------+
| JSON_ARRAY                                                |
+-----------------------------------------------------------+
| [{"id":1,"r1":2,"r2":"ob"},{"id":2,"r1":10,"r2":"mysql"}] |
+-----------------------------------------------------------+
1 row in set (0.022 sec)

```

## MySQL 模式

MySQL 模式有自带函数 `json_object`、`json_arrayagg` 来转换，方法如下。

```shell
obclient [test]> select json_arrayagg(r) 'json_array' from (select json_object("id",id,"r1",r1,"r2",r2) r from j1 ) T;

```

```shell
+----------------------------------------------------------------------+
| json_array |
+----------------------------------------------------------------------+
| [{"id": 1, "r1": 2, "r2": "ob"}, {"id": 2, "r1": 10, "r2": "mysql"}] |
+----------------------------------------------------------------------+
1 row in set (0.001 sec)  

```

Previous

[Oracle 模式分页查询的注意事项](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000466057)

Next

[OceanBase 数据库 MySQL 模式查询如何区分大小写](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450148) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
