从关系数据库 table 构建自定义 JSON
Build custom JSON from relational database table
我有一个 table 并且 table 有几列。我想根据这些数据构建一个 JSON。这是 table 结构。
JSON_KEY COLUMNNAME
Acreage12 accreage
Farmer_projected sellingprice
Projected_Expense attr1
Pattern1 crop
预期 JSON:-
{
"Agriculture_Expenses": [
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "76230.00",
"Pattern1": "Khariff"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "50820.00",
"Pattern1": "Rabi"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "63000.00",
"Pattern1": "Zaid"
}
]
}
如果您使用的是 12c 及更高版本,请使用 JSON_OBJECT
运算符。例如:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> with emp (empno, ename, job, sal) as
2 (select 1, 'Little', 'Salesman', 1250 from dual union all
3 select 2, 'Foot' , 'Clerk' , 980 from dual union all
4 select 3, 'Scott' , 'Manager' , 1580 from dual
5 )
6 select json_object ('id' value empno,
7 'name' value ename,
8 'position' value job,
9 'salary' value sal
10 ) json
11 from emp;
JSON
--------------------------------------------------------------------------------
{"id":1,"name":"Little","position":"Salesman","salary":1250}
{"id":2,"name":"Foot","position":"Clerk","salary":980}
{"id":3,"name":"Scott","position":"Manager","salary":1580}
SQL>
如果您使用的是较低的数据库版本,则必须手动。
您可以连续使用 JSON_OBJECT()
以及数据库版本 12.2+
:
第二步中嵌入的 JSON_ARRAYAGG()
函数
SELECT JSON_OBJECT( 'Agriculture_Expenses' value
JSON_ARRAYAGG(JSON_OBJECT ('Acreage12' value accreage,
'Farmer_projected' value sellingprice,
'Projected_Expense' value attr1,
'Pattern1' value crop
)
)
) AS "Result JSON"
FROM t
我有一个 table 并且 table 有几列。我想根据这些数据构建一个 JSON。这是 table 结构。
JSON_KEY COLUMNNAME
Acreage12 accreage
Farmer_projected sellingprice
Projected_Expense attr1
Pattern1 crop
预期 JSON:-
{
"Agriculture_Expenses": [
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "76230.00",
"Pattern1": "Khariff"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "50820.00",
"Pattern1": "Rabi"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "63000.00",
"Pattern1": "Zaid"
}
]
}
如果您使用的是 12c 及更高版本,请使用 JSON_OBJECT
运算符。例如:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> with emp (empno, ename, job, sal) as
2 (select 1, 'Little', 'Salesman', 1250 from dual union all
3 select 2, 'Foot' , 'Clerk' , 980 from dual union all
4 select 3, 'Scott' , 'Manager' , 1580 from dual
5 )
6 select json_object ('id' value empno,
7 'name' value ename,
8 'position' value job,
9 'salary' value sal
10 ) json
11 from emp;
JSON
--------------------------------------------------------------------------------
{"id":1,"name":"Little","position":"Salesman","salary":1250}
{"id":2,"name":"Foot","position":"Clerk","salary":980}
{"id":3,"name":"Scott","position":"Manager","salary":1580}
SQL>
如果您使用的是较低的数据库版本,则必须手动。
您可以连续使用 JSON_OBJECT()
以及数据库版本 12.2+
:
JSON_ARRAYAGG()
函数
SELECT JSON_OBJECT( 'Agriculture_Expenses' value
JSON_ARRAYAGG(JSON_OBJECT ('Acreage12' value accreage,
'Farmer_projected' value sellingprice,
'Projected_Expense' value attr1,
'Pattern1' value crop
)
)
) AS "Result JSON"
FROM t