JSON 作为一种轻量级的数据交换格式,类似于 JavaScript 中的对象,但其更加简洁和通用化。而且由于其易读易写的特点,使得 JSON 数据格式呗广泛应用于 Web 开发和数据传输领域,成为了数据交换中的理想选择。
1、JSON 语法
语法规则:
- 数据被存储在键值对中 key:value ;
- 数据之间使用逗号进行分隔;
- 使用大括号 { } 来存储和定义数据对象;
- 使用中括号 [ ] 来存储数组,数组中可以包含多个对象;
- 使用反斜线 \ 来转义字符;
2、JSON 对象数据类型
JSON 对象需要在大括号 { } 中进行书写,对象中可以包含多个 key:value 的键值对。
其中的 key 的数据类型必须是字符串;
其对应的 value 可以是不同的数据类型,他所支持的数据类型包括:
- 数字(整数、浮点数)
- 字符串(使用双引号包裹起来)
- 逻辑布尔值(True、False)
- 数组(使用中括号 [] 进行包裹):{"persons":[{},
- 对象(使用大括号 {} 进行包裹):{"address":{"country":"中国","":""....}}
- NULL
示例 JSON 对象:
declare
json_mess varchar2(4000) := '
{
"name":"网站",
"num":3,
"sites": [
{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
{ "name":"Baidu", "info":[ "Baidu 搜索", "Baidu 地图" ] },
{ "name":"Taobao", "info":[ "淘宝", "网购" ] }
]
}';
begin
null;
end;
在 JSON 对象中,可以包含一个或多个数组对象,同时数组对象中也可以嵌套包含另外的 JSON 对象或者是数组。
3、JSON 数据处理
3.1 使用 PL/SQL 处理 JSON 数据
PL/SQL 是一种程序语言,叫做过程化 SQL 语言(Procedural Language/SQL)。是作为 ORACLE 公司对标准数据库语言的扩展,在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。
通过以下SQL可以快速的解析出json报文中的数据信息:
WITH json_documents(data) AS
(SELECT lp_clob FROM dual)
SELECT h.*
FROM json_documents jd,
json_table(jd.data,
'$'
columns(base_date VARCHAR2(300) path '$.BASE_DATE',
org_name VARCHAR2(300) path '$.ORG_NAME',
currency VARCHAR2(300) path '$.CURRENCY',
attribute1 VARCHAR2(150) path '$.attribute1',
attribute2 VARCHAR2(150) path '$.attribute2',
attribute3 VARCHAR2(150) path '$.attribute3',
attribute4 VARCHAR2(150) path '$.attribute4',
attribute5 VARCHAR2(150) path '$.attribute5',
attribute6 VARCHAR2(150) path '$.attribute6',
attribute7 VARCHAR2(150) path '$.attribute7',
attribute8 VARCHAR2(150) path '$.attribute8',
attribute9 VARCHAR2(150) path '$.attribute9',
attribute10 VARCHAR2(150) path '$.attribute10')) AS h;
+++========================================================+++
整理不足,后面持续补充中......
以上内容仅为个人学习记录使用。
如有转载,请附有原文出处链接。
参考链接:
https://blog.csdn.net/Hudas/article/details/127693638
https://www.cnblogs.com/qihaokuan/p/17100757.html
https://blog.csdn.net/interestANd/article/details/129499167
浙公网安备 33010602011771号