Sample code for 30+ languages & platforms
SQL Server

Build JSON with Mixture of Arrays and Objects

See more JSON Examples

Another example showing how to build JSON containing a mixture of arrays and objects.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    --  We want to build the following JSON:

    --  { 
    --    "accountEnabled": true,
    --    "assignedLicenses": [
    --      { 
    --        "disabledPlans": [ "bea13e0c-3828-4daa-a392-28af7ff61a0f" ],
    --        "skuId": "skuId-value"
    --      }
    --    ],
    --    "assignedPlans": [
    --      { 
    --        "assignedDateTime": "datetime-value",
    --        "capabilityStatus": "capabilityStatus-value",
    --        "service": "service-value",
    --        "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    --      }
    --    ],
    --    "businessPhones": [
    --      "businessPhones-value"
    --    ],
    --    "city": "city-value",
    --    "companyName": "companyName-value"
    --  }

    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, 'UpdateBool', @success OUT, 'accountEnabled', 1
    EXEC sp_OASetProperty @json, 'I', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedLicenses[i].disabledPlans[0]', 'bea13e0c-3828-4daa-a392-28af7ff61a0f'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedLicenses[i].skuId', 'skuId-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedPlans[i].assignedDateTime', 'datetime-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedPlans[i].capabilityStatus', 'capabilityStatus-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedPlans[i].service', 'service-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'assignedPlans[i].servicePlanId', 'bea13e0c-3828-4daa-a392-28af7ff61a0f'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'businessPhones[i]', 'businessPhones-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'city', 'city-value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'companyName', 'companyName-value'

    EXEC sp_OASetProperty @json, 'EmitCompact', 0
    EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
    PRINT @sTmp0

    --  Output:

    --  { 
    --    "accountEnabled": true,
    --    "assignedLicenses": [
    --      { 
    --        "disabledPlans": [
    --          "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    --        ],
    --        "skuId": "skuId-value"
    --      }
    --    ],
    --    "assignedPlans": [
    --      { 
    --        "assignedDateTime": "datetime-value",
    --        "capabilityStatus": "capabilityStatus-value",
    --        "service": "service-value",
    --        "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
    --      }
    --    ],
    --    "businessPhones": [
    --      "businessPhones-value"
    --    ],
    --    "city": "city-value",
    --    "companyName": "companyName-value"
    --  }

    EXEC @hr = sp_OADestroy @json


END
GO