Sample code for 30+ languages & platforms
SQL Server

JSON AppendObject2 Example

Demonstrates the AppendObject2 function.

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 }'

    -- Append an empty object named "addr"
    DECLARE @jObj int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jObj OUT

    EXEC sp_OAMethod @json, 'AppendObject2', @success OUT, 'addr', @jObj

    EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
    PRINT @sTmp0
    -- Expected output is:   {"name":"John","marbles":100,"addr":{}}

    -- Add members to the object.
    EXEC sp_OAMethod @jObj, 'AppendString', @success OUT, 'street', '1200 Elm St.'
    EXEC sp_OAMethod @jObj, 'AppendString', @success OUT, 'city', 'Springfield'
    EXEC sp_OAMethod @jObj, 'AppendInt', @success OUT, 'zip', 60606

    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}}

    EXEC @hr = sp_OADestroy @json
    EXEC @hr = sp_OADestroy @jObj


END
GO