java json数组解析-JSON对数据库如此重要么?是什么?为何?
熟悉数据库的朋友们应该都知道,JSON是目前某些流行的NoSQL数据库标配支持,能否支持JSON似乎成了关系型数据库和NoSQL数据库的最明显区别。
JSON太重要了,可您知道为何JSON对数据库如此重要么?现在流行的关系型数据库都支持JSON么?都提供了哪些支持呢?
今天我们就谈谈这个话题。
JSON是什么?为何对数据库如此重要?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于阅读和编写。同时也易于机器解析和生成。
JSON的名字中包含了Javascript字眼,其实java json数组解析,JSON跟JavaScript和Java基本上没半毛钱关系。通俗来说,JSON就是一种数据交换和存储格式,这种格式是非常灵活,语法结构非常简单,主要由键值对组成了不限层级的数据树,键可以理解为名称,值就是键的对应值。
先上一个例子:
{ "销售数据": [ { "FName": "张三", "FDistrict": "北京", "FAmount": 20000 }, { "FName": "李四", "FDistrict": "深圳", "FAmount": 40000 } ] }
如上例所示就是一段JSON,其中冒号之前双引号引起来的字符串的就是键,冒号之后的就是值。方括号的括起来的部分称为数组。总之,键可以为空或者是一个字符串,值可以是空值、字符串、整数、浮点数、布尔、数组或JSON。
JSON本身是不支持日期和时间类型的,这个要通过字符串代替,MongoDB中支持的BSON类型是改良过的JSON,可以直接支持日期和时间。
JSON为何对数据库如此重要呢?
传统的关系型数据库,主要通过字段标识数据,字段定了,数据结构就定了。这种数据存储架构是很死的,在如今数据大爆炸的时代,使用关系型数据库这种固化架构存储数据越来越无法满足需求了,而灵活的JSON数据架构可以根据需要扩展数据存储的格式,孰优孰劣就一目了然了。这就是以MongoDB为代表的NoSQL数据库之所以大行其道的重要原因之一。
关系型数据库能够支持Json吗?
早先的关系型数据库确实是不太支持Json的,要不也会有如今MongoDB这些NoSQL数据库什么事儿了。但近年来新版本的关系型数据库,基本都提供了对Json不同程度的支持。
比如我们熟知的开源关系型数据库PostgreSQL,可谓对Json提供了全方位支持,不但有大量内置的Json处理函数,连字段元数据级别也早都支持Json类型了。其它的关系型数据库系统做的没有PostgreSQL这么彻底,但也都有所行动。
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字符串中提取对象和数组。
4、JSON_MODIFY,更新 JSON 字符串中属性的值,并返回已更新的 JSON 字符串。
5、OPENJSON,行集函数,将Json字符串转换为记录集。
这五个函数,囊括了Json判断、Json标量值提取、Json对象和数组提取、Json标量值更新、Json转记录集。对一般的Json处理来说,这些已经足够使用了。
今天,我们就从最简单的ISJSON谈起。
通过ISJSON判断字符串是否是JSON
SQL Server的ISJSON函数使用非常简单,语法格式为:
ISJSON (字符串、字符串变量、或字符串表达式)
若字符串包含了有效JSON,返回1,否则返回0。
参看下图:
确实很简单对吧。今天只是开始,后面我们会把SQL Server中其它的JSON函数都好好实战一遍。
希望对您有所帮助!