今天小编给大家分享一下SQLServer怎么操作Json格式字段数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1 json存储

在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,json的函数不支持。

2 json操作

主要介绍5个函数:

(1)openJson:打开Json字符串

(2)IsJson:判断一个字符串是不是合法的Json格式。是返回1,否返回0,null返回null。

(3)Json_Value:从Json字符串中提取值。

(4)Json_Query:Json字符串中提取对象或数组。

(5)Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。

新建wm_json_demo 表:

CREATETABLEdemo_plus.dbo.wm_json_demo(idintIDENTITY(1,1)NOTNULL,json_detailvarchar(max)NOTNULL,CONSTRAINTPK_wm_json_demoPRIMARYKEY(id));

下面以wm_json_demo 为例,演示以上5个json操作相关的函数

INSERTINTOdemo_plus.dbo.wm_json_demo(json_detail)VALUES('{"key":3,"value1":10,"value2":[{"vv21":13,"vv22":103}],"value3":null}');INSERTINTOdemo_plus.dbo.wm_json_demo(json_detail)VALUES('{"key":4,"value1":15,"value2":[{"vv21":13,"vv22":103}],"value3":"10"}');INSERTINTOdemo_plus.dbo.wm_json_demo(json_detail)VALUES('{"key":7,"value1":20,"value2":[{"vv21":13,"vv22":103}],"value3":"15"}');

IsJson:判断一个字符串是不是合法的Json格式。是返回1,否返回0,null返回null。

SELECTIsJson(json_detail)asIsJsonfromdemo_plus.dbo.wm_json_demo

Json_Value:从Json字段中提取值

用法:Json_Value (cloumn_name,’$.json_field_name’) from table

Json_Query:Json字符串中提取对象或数组。

用法:Json_Query (cloumn_name,’$.json_field_name’) from table

SELECTJSON_VALUE(json_detail,'$.key')as'key',JSON_VALUE(json_detail,'$.value1')asvalue1,JSON_value(json_detail,'$.value2')asvalue2,JSON_QUERY(json_detail,'$.value2')asvalue2_query,JSON_VALUE(json_detail,'$.value3')asvalue3fromdemo_plus.dbo.wm_json_demo;

Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。

JSON_MODIFY(column_name, ‘$.json_field’, ‘change_info’);

SELECTJSON_MODIFY(json_detail,'$.value1',11)asjson_detailfromdemo_plus.dbo.wm_json_demowhereJSON_VALUE(json_detail,'$.key')=7;

以上就是“SQLServer怎么操作Json格式字段数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。