Sample code for 30+ languages & platforms
DataFlex

JSON AppendArrayCopy Example

Demonstrates the AppendArrayCopy function.

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoJson
    Boolean iSuccess
    Variant vJarr
    Handle hoJarr
    String sTemp1

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComLoad Of hoJson '{ "name": "John", "marbles": 100 }' To iSuccess

    Get Create (RefClass(cComChilkatJsonArray)) To hoJarr
    If (Not(IsComObjectCreated(hoJarr))) Begin
        Send CreateComObject of hoJarr
    End
    Get ComLoad Of hoJarr '[ 1, 2, 3, "apple", "orange", [ 10, 20, 30 ], { "name": "Alfred"} ]' To iSuccess

    // Copy the contents of jar to a new array member named "stuff".
    Get pvComObject of hoJarr to vJarr
    Get ComAppendArrayCopy Of hoJson "stuff" vJarr To iSuccess

    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1
    // Expected output is:  {"name":"John","marbles":100,"stuff":[1,2,3,"apple","orange",[10,20,30],{"name":"Alfred"}]}

    // Note: The contents of the array were copied.
    // If we modify the contents of jarr, it does not modify the array contained within "json" because it is a separate copy.
    // For example:
    Get ComAddIntAt Of hoJarr -1 2020 To iSuccess
    Get ComEmit Of hoJarr To sTemp1
    Showln sTemp1
    // Expected output: [1,2,3,"apple","orange",[10,20,30],{"name":"Alfred"},2020]

    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1
    // Remains unchanged: {"name":"John","marbles":100,"stuff":[1,2,3,"apple","orange",[10,20,30],{"name":"Alfred"}]}


End_Procedure