Sample code for 30+ languages & platforms
SQL Server

JSON AppendObjectCopy Example

Demonstrates the AppendObjectCopy function.

Note: This example requires Chilkat v9.5.0.82 or above.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @json int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int
    EXEC sp_OAMethod @json, 'Load', @success OUT, '{ "name": "John", "marbles": 100 }'

    DECLARE @json2 int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json2 OUT

    EXEC sp_OAMethod @json2, 'Load', @success OUT, '{"street":"1200 Elm St.","city":"Springfield","zip":60606}'

    -- Copy the contents of json2 to a new member object named "addr".
    EXEC sp_OAMethod @json, 'AppendObjectCopy', @success OUT, 'addr', @json2

    EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
    PRINT @sTmp0
    -- Expected output is:  {"name":"John","marbles":100,"addr":{"street":"1200 Elm St.","city":"Springfield","zip":60606}}

    -- Note: Modifying the contents of json does not modify the contents of json2 (because the contents of json2 were copied).
    -- For example:
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'addr.street', '1000 Oak St.'
    EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
    PRINT @sTmp0
    -- Expected output is:  {"name":"John","marbles":100,"addr":{"street":"1000 Oak St.","city":"Springfield","zip":60606}}

    EXEC sp_OAMethod @json2, 'Emit', @sTmp0 OUT
    PRINT @sTmp0
    -- Expected output is: {"street":"1200 Elm St.","city":"Springfield","zip":60606}

    EXEC @hr = sp_OADestroy @json
    EXEC @hr = sp_OADestroy @json2


END
GO