16. JSON
Objectives
- Hiểu được cách thức hoạt động của JSON trong SQL Server
Kiểu dữ liệu JSON là gì?
Kiểu dữ liệu JSON là một kiểu dữ liệu mới được hỗ trợ trong SQL Server 2016. Kiểu dữ liệu này cho phép lưu trữ dữ liệu dưới dạng JSON (JavaScript Object Notation). JSON là một định dạng dữ liệu phổ biến trong các ứng dụng web hiện nay.
Các hàm JSON
FOR JSON PATH
Dùng để chuy ển kết quả của một câu lệnh SELECT thành một đối tượng JSON. Ví dụ:
SELECT
O.*,
(SELECT * FROM Customers AS C WHERE O.CustomerId = C.Id FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) AS Customer,
(SELECT * FROM Employees AS E WHERE O.EmployeeId = E.Id FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) AS Employee
FROM Orders AS O
Hàm JSON_VALUE
Dùng để trích xuất một giá trị từ một đối tượng JSON.
Ví dụ: Trích xuất giá trị của thuộc tính name
từ đối tượng JSON {"name": "John", "age": 30}
SELECT JSON_VALUE('{"name": "John", "age": 30}', '$.name') AS name
Hàm JSON_QUERY
Dùng để trích xuất một đối tượng JSON từ một đối tượng JSON.
Ví dụ: Trích xuất đối tượng JSON {"name": "John", "age": 30}
từ đối tượng JSON {"name": "John", "age": 30, "address": {"street": "123 Main St.", "city": "New York"}}
SELECT JSON_QUERY('{"name": "John", "age": 30, "address": {"street": "123 Main St.", "city": "New York"}}', '$.address') AS address
Hàm JSON_MODIFY
Dùng để thay đổi một giá trị trong một đối tượng JSON.
Ví dụ: Thay đổi giá trị của thuộc tính name
từ John
thành Jane
trong đối tượng JSON {"name": "John", "age": 30}
SELECT JSON_MODIFY('{"name": "John", "age": 30}', '$.name', 'Jane') AS name
Hàm ISJSON
Dùng để kiểm tra một chuỗi có phải là một đối tượng JSON hay không.
Ví dụ: Kiểm tra chuỗi {"name": "John", "age": 30}
có phải là một đối tượng JSON hay không
SELECT ISJSON('{"name": "John", "age": 30}') AS is_json
Hàm OPENJSON
Dùng để chuyển một đối tượng JSON thành một bảng.
Ví dụ: Chuyển đối tượng JSON {"name": "John", "age": 30}
thành bảng
SELECT * FROM OPENJSON('{"name": "John", "age": 30}')