使用 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# |