Sample code for 30+ languages & platforms
Unicode C

JSON AddObjectCopyAt Example

Demonstrates the AddObjectCopyAt function.

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

Chilkat Unicode C Downloads

Unicode C
#include <C_CkJsonObjectW.h>

void ChilkatSample(void)
    {
    HCkJsonObjectW json;
    HCkJsonObjectW json2;

    json = CkJsonObjectW_Create();
    CkJsonObjectW_Load(json,L"{ \"name\": \"John\", \"marbles\": 100 }");

    json2 = CkJsonObjectW_Create();
    CkJsonObjectW_Load(json2,L"{\"street\":\"1200 Elm St.\",\"city\":\"Springfield\",\"zip\":60606}");

    // Copy the contents of json2 to a new member object named "addr".
    // Insert it in the 2nd position.
    CkJsonObjectW_AddObjectCopyAt(json,1,L"addr",json2);

    wprintf(L"%s\n",CkJsonObjectW_emit(json));
    // Expected output is:  {"name":"John","addr":{"street":"1200 Elm St.","city":"Springfield","zip":60606},"marbles":100}

    // Note: Modifying the contents of json does not modify the contents of json2 (because the contents of json2 were copied).
    // For example:
    CkJsonObjectW_UpdateString(json,L"addr.street",L"1000 Oak St.");
    wprintf(L"%s\n",CkJsonObjectW_emit(json));
    // Expected output is:  {"name":"John","addr":{"street":"1000 Oak St.","city":"Springfield","zip":60606},"marbles":100}

    wprintf(L"%s\n",CkJsonObjectW_emit(json2));
    // Expected output is: {"street":"1200 Elm St.","city":"Springfield","zip":60606}


    CkJsonObjectW_Dispose(json);
    CkJsonObjectW_Dispose(json2);

    }