首页 > 解决方案 > 从关系数据库表构建自定义 JSON

问题描述

我有一张桌子,桌子有几列。我想从这些数据中构建一个 JSON。这是表结构。

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"
    }
  ]
}

标签: sqljsonoracleoracle12c

解决方案


如果您使用的是 12c 或更高版本,请使用JSON_OBJECToperator。例如:

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>

如果您使用的是较低的数据库版本,则必须手动进行。


推荐阅读