Sample code for 30+ languages & platforms
PureBasic

JSON AddObjectCopyAt Example

Demonstrates the AddObjectCopyAt function.

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

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoad(json,"{ " + Chr(34) + "name" + Chr(34) + ": " + Chr(34) + "John" + Chr(34) + ", " + Chr(34) + "marbles" + Chr(34) + ": 100 }")

    json2.i = CkJsonObject::ckCreate()
    If json2.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoad(json2,"{" + Chr(34) + "street" + Chr(34) + ":" + Chr(34) + "1200 Elm St." + Chr(34) + "," + Chr(34) + "city" + Chr(34) + ":" + Chr(34) + "Springfield" + Chr(34) + "," + Chr(34) + "zip" + Chr(34) + ":60606}")

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

    Debug CkJsonObject::ckEmit(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:
    CkJsonObject::ckUpdateString(json,"addr.street","1000 Oak St.")
    Debug CkJsonObject::ckEmit(json)
    ; Expected output is:  {"name":"John","addr":{"street":"1000 Oak St.","city":"Springfield","zip":60606},"marbles":100}

    Debug CkJsonObject::ckEmit(json2)
    ; Expected output is: {"street":"1200 Elm St.","city":"Springfield","zip":60606}


    CkJsonObject::ckDispose(json)
    CkJsonObject::ckDispose(json2)


    ProcedureReturn
EndProcedure