当前位置: 主页 > JAVA语言

java json数组解析-JSON对数据库如此重要么?是什么?为何?

发布时间:2023-06-11 22:08   浏览次数:次   作者:佚名

熟悉数据库的朋友们应该都知道,JSON是目前某些流行的NoSQL数据库标配支持,能否支持JSON似乎成了关系型数据库和NoSQL数据库的最明显区别。

JSON太重要了,可您知道为何JSON对数据库如此重要么?现在流行的关系型数据库都支持JSON么?都提供了哪些支持呢?

json 数组解析_java json数组解析_java解析json数组循环

今天我们就谈谈这个话题。

JSON是什么?为何对数据库如此重要?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于阅读和编写。同时也易于机器解析和生成。

java json数组解析_json 数组解析_java解析json数组循环

JSON的名字中包含了Javascript字眼,其实java json数组解析,JSON跟JavaScript和Java基本上没半毛钱关系。通俗来说,JSON就是一种数据交换和存储格式,这种格式是非常灵活,语法结构非常简单,主要由键值对组成了不限层级的数据树,键可以理解为名称,值就是键的对应值。

先上一个例子:

{
 "销售数据": [
 {
 "FName": "张三",
 "FDistrict": "北京",
 "FAmount": 20000
 },
 {
 "FName": "李四",
 "FDistrict": "深圳",
 "FAmount": 40000
 }
 ]
}

如上例所示就是一段JSON,其中冒号之前双引号引起来的字符串的就是键,冒号之后的就是值。方括号的括起来的部分称为数组。总之,键可以为空或者是一个字符串,值可以是空值、字符串、整数、浮点数、布尔、数组或JSON。

java解析json数组循环_java json数组解析_json 数组解析

JSON本身是不支持日期和时间类型的,这个要通过字符串代替,MongoDB中支持的BSON类型是改良过的JSON,可以直接支持日期和时间。

json 数组解析_java json数组解析_java解析json数组循环

JSON为何对数据库如此重要呢?

传统的关系型数据库,主要通过字段标识数据,字段定了,数据结构就定了。这种数据存储架构是很死的,在如今数据大爆炸的时代,使用关系型数据库这种固化架构存储数据越来越无法满足需求了,而灵活的JSON数据架构可以根据需要扩展数据存储的格式,孰优孰劣就一目了然了。这就是以MongoDB为代表的NoSQL数据库之所以大行其道的重要原因之一。

关系型数据库能够支持Json吗?

早先的关系型数据库确实是不太支持Json的,要不也会有如今MongoDB这些NoSQL数据库什么事儿了。但近年来新版本的关系型数据库,基本都提供了对Json不同程度的支持。

比如我们熟知的开源关系型数据库PostgreSQL,可谓对Json提供了全方位支持,不但有大量内置的Json处理函数,连字段元数据级别也早都支持Json类型了。其它的关系型数据库系统做的没有PostgreSQL这么彻底,但也都有所行动。

json 数组解析_java json数组解析_java解析json数组循环

java json数组解析_json 数组解析_java解析json数组循环

SQL Server对Json的支持也是很不错的,但跟PostgreSQL比起来不算太彻底,SQL Server虽然不支持Json类型的字段,但提供了一些对Json进行解析和处理的函数,非常实用,能够抓到老鼠的就是好猫。今天我们就以SQL Server为例,一起探讨下关系型数据库对Json的支持。

SQL Server如何支持Json?

SQL Server对Json的处理java json数组解析,是通过多个Json处理函数实现的,主要包括以下五大函数:

1、ISJSON,判断字符串是否是Json格式。

2、JSON_VALUE,从JSON字符串中提取标量值。

3、JSON_QUERY,从Json字符串中提取对象和数组。

java解析json数组循环_json 数组解析_java json数组解析

4、JSON_MODIFY,更新 JSON 字符串中属性的值,并返回已更新的 JSON 字符串。

5、OPENJSON,行集函数,将Json字符串转换为记录集。

这五个函数,囊括了Json判断、Json标量值提取、Json对象和数组提取、Json标量值更新、Json转记录集。对一般的Json处理来说,这些已经足够使用了。

今天,我们就从最简单的ISJSON谈起。

通过ISJSON判断字符串是否是JSON

SQL Server的ISJSON函数使用非常简单,语法格式为:

json 数组解析_java解析json数组循环_java json数组解析

ISJSON (字符串、字符串变量、或字符串表达式) 

若字符串包含了有效JSON,返回1,否则返回0。

参看下图:

json 数组解析_java解析json数组循环_java json数组解析

确实很简单对吧。今天只是开始,后面我们会把SQL Server中其它的JSON函数都好好实战一遍。

希望对您有所帮助!