推薦學習:《》
在sqlserver 中儲存json ,需要用字串型別進行儲存,一般用nvarchar()或 varchar()進行儲存,不要用text進行儲存,用text時候,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 表:
CREATE TABLE demo_plus.dbo.wm_json_demo ( id int IDENTITY(1,1) NOT NULL, json_detail varchar(max) NOT NULL, CONSTRAINT PK_wm_json_demo PRIMARY KEY (id) );
下面以wm_json_demo 為例,演示以上5個json操作相關的函數
INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES('{"key":3,"value1":10,"value2":[{"vv21":13,"vv22":103}],"value3":null}'); INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES('{"key":4,"value1":15,"value2":[{"vv21":13,"vv22":103}],"value3":"10"}'); INSERT INTO demo_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。
SELECT IsJson(json_detail) as IsJson from demo_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
SELECT JSON_VALUE(json_detail,'$.key') as 'key', JSON_VALUE(json_detail,'$.value1') as value1, JSON_value(json_detail,'$.value2') as value2, JSON_QUERY(json_detail,'$.value2') as value2_query, JSON_VALUE(json_detail,'$.value3') as value3 from demo_plus.dbo.wm_json_demo;
Json_Modify:更新Json字串中的屬性值,並返回更新的Json字串。
JSON_MODIFY(column_name, ‘$.json_field’, ‘change_info’);
SELECT JSON_MODIFY(json_detail, '$.value1', 11) as json_detail from demo_plus.dbo.wm_json_demo where JSON_VALUE(json_detail, '$.key')= 7;
推薦學習:《》
VIP推薦:
以上就是SQL Server解析/操作Json格式欄位資料的方法範例的詳細內容,更多請關注TW511.COM其它相關文章!