在 JSON 文字中插入新的 JSON 物件

JSON_MODIFY 函式使你可以將 JSON 物件插入 JSON 文字:

declare @json nvarchar(4000) = N'{"Id":1,"Name":"Toy Car"}'
set @json = JSON_MODIFY(@json, '$.Price', 
                        JSON_QUERY('{"Min":34.99,"Recommended":45.49}'))
print @json
-- Output: {"Id":1,"Name":"Toy Car","Price":{"Min":34.99,"Recommended":45.49}}

由於第三個引數是文字,因此需要使用 JSON_QUERY 函式將其包裝為強制轉換文字為 JSON。如果沒有這個強制轉換,JSON_MODIFY 會在將第三個引數作為字串值插入之前將其視為純文字和轉義字元。沒有 JSON_QUERY 結果將是:

{"Id":1,"Name":"Toy Car","Price":'{\"Min\":34.99,\"Recommended\":45.49}'}

如果該物件不存在,則 JSON_MODIFY 將插入此物件;如果第三個引數的值為 NULL,則將其刪除。