介绍
随着移动设备和应用程序的不断发展,越来越多的应用程序需要处理JSON格式的数据。JSON(JavaScript对象表示法)是一种轻量级的数据交换格式。在过去,关系型数据库一直在支持XML处理,但对于JSON,使用起来则不够便捷。对于使用JSON格式存储和处理数据的开发人员来说,这可能需要建立一个中间层,以将数据转换为SQL语句或可处理的XML格式。
现在,Microsoft SQL Server 2016支持JSON,这使开发人员能够使用方便简洁的语法轻松执行JSON数据的存储和解析。
如何使用JSON in MSSQL
1.创建JSON
创建JSON对象非常简单。 JSON对象是由花括号中的键和值对列表组成的。每个键均为字符串,值可以是任何JSON类型(即字符串,数字,对象,数组等)。
DECLARE @json NVARCHAR(MAX)
SET @json = N'{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"spouse": null
}'
2.查询JSON
在SQL Server中查询JSON数据的语法非常简单,使用OPENJSON函数即可。 OPENJSON() 函数读取JSON值,并以适当的格式拆分为行和列。 此函数为JSON数据数组提供对元素的访问,并返回表格式的输出。
DECLARE @json NVARCHAR(MAX)
SET @json = N'{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"spouse": null
}'
SELECT *
FROM OPENJSON(@json)
WITH (firstName VARCHAR(100), lastName VARCHAR(100), age INT,
address VARCHAR(200) '$.address.streetAddress',
city VARCHAR(100) '$.address.city',
state CHAR(2) '$.address.state',
zipCode VARCHAR(10) '$.address.postalCode',
homePhone VARCHAR(20) '$.phoneNumbers[0].number',
officePhone VARCHAR(20) '$.phoneNumbers[1].number',
spouse VARCHAR(100) '$.spouse');
3.更新JSON
在SQL Server中,UPDATE查询可以通过在更新查询中使用JSON API来更新JSON对象的属性或元素。
DECLARE @json NVARCHAR(MAX)
SET @json = N'{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"spouse": null
}'
SET @json = JSON_MODIFY(@json, '$.age', 26)
SELECT @json
总结
Microsoft SQL Server 2016的JSON支持为开发人员提供了方便快捷的方法来存储和处理JSON格式数据。 SQL Server的JSON API非常易于使用,并且使用它可以轻松地将现有的JSON应用程序与SQL Server集成在一起。如果您想要探索SQL Server的JSON支持,请尝试使用我们提供的示例代码和建议,以便开始构建在JSON中存储数据的SQL Server应用程序。