使用 OPENJSON 函数解析 JSON 文本
OPENJSON 函数解析 JSON 文本并返回多个输出。应返回的值使用 WITH 子句中定义的路径指定。如果没有为某些列指定路径,则列名称将用作路径。此函数将返回值强制转换为 WITH 子句中定义的 SQL 类型。如果应返回某个对象/数组,则必须在列定义中指定 AS JSON 选项。
DECLARE @json NVARCHAR(100) = '{"id": 1, "user":{"name":"John"}, "skills":["C#","SQL"]}'
SELECT *
FROM OPENJSON (@json)
WITH(Id int '$.id',
Name nvarchar(100) '$.user.name',
UserObject nvarchar(max) '$.user' AS JSON,
Skills nvarchar(max) '$.skills' AS JSON,
Skill0 nvarchar(20) '$.skills[0]')
结果
ID |
名称 | UserObject | 技能 | Skill0 |
---|---|---|---|---|
1 |
约翰 | { 名: 约翰} | [ C# ,SQL ] |
C# |