SQL Server解析/操作Json格式字段数据的方法实例

SQL Server解析/操作Json格式字段数据的方法实例
最新回答
有奶便是娘

2026-02-19 02:43:43

SQL Server解析/操作Json格式字段数据的方法实例

在SQL Server中,可以使用以下方法解析和操作JSON格式字段数据:

  • 存储JSON:在SQL Server中存储JSON时,应使用字符串类型,如nvarchar()或varchar(),而不是text类型,因为text类型不支持JSON函数。
  • JSON操作:主要介绍五个函数:

    openJson:打开JSON字符串。

    IsJson:判断一个字符串是否为合法的JSON格式。如果是,返回1;如果不是,返回0;如果是null,则返回null。

    Json_Value:从JSON字符串中提取值。

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

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

以下是一个示例,展示如何使用这些函数:

  1. 创建表并插入数据:
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));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"}');
  1. 使用IsJson函数判断字符串是否为合法的JSON格式:
SELECT IsJson(json_detail) as IsJsonfrom demo_plus.dbo.wm_json_demo

  1. 使用Json_Value和Json_Query函数从JSON字段中提取值和对象/数组:
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 value3from demo_plus.dbo.wm_json_demo;

  1. 使用Json_Modify函数更新JSON字符串中的属性值:
SELECT JSON_MODIFY(json_detail, '$.value1', 11) as json_detailfrom demo_plus.dbo.wm_json_demowhere JSON_VALUE(json_detail, '$.key')= 7;

此外,还可以参考SQL Server官方文档以获取更多信息:

SQL Server JSON 数据
。