Sample code for 30+ languages & platforms
DataFlex

Insert JSON Object into another JSON Object

See more JSON Examples

Demonstrates how to insert one JSON object into another. Effectively, the JSON object must be copied into the other..

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoJsonA
    Boolean iSuccess
    Variant vJsonB
    Handle hoJsonB
    String sTemp1

    // Imagine we have two separate JSON objects.
    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonA
    If (Not(IsComObjectCreated(hoJsonA))) Begin
        Send CreateComObject of hoJsonA
    End
    Get ComUpdateString Of hoJsonA "animal" "zebra" To iSuccess
    Get ComUpdateString Of hoJsonA "colors[0]" "white" To iSuccess
    Get ComUpdateString Of hoJsonA "colors[1]" "black" To iSuccess

    Set ComEmitCompact Of hoJsonA To False
    Get ComEmit Of hoJsonA To sTemp1
    Showln sTemp1

    // jsonA contains:

    // {
    //   "animal": "zebra",
    //   "colors": [
    //     "white",
    //     "black"
    //   ]
    // }

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonB
    If (Not(IsComObjectCreated(hoJsonB))) Begin
        Send CreateComObject of hoJsonB
    End
    Get ComUpdateString Of hoJsonB "type" "mammal" To iSuccess
    Get ComUpdateBool Of hoJsonB "carnivore" False To iSuccess

    Set ComEmitCompact Of hoJsonB To False
    Get ComEmit Of hoJsonB To sTemp1
    Showln sTemp1

    // jsonB contains:

    // {
    //   "type": "mammal",
    //   "carnivore": false
    // }

    // Let's say we want to insert jsonB into jsonA to get this:

    // {
    //   "animal": "zebra",
    //   "info" " {
    //       "type": "mammal",
    //       "carnivore": false
    // 	},
    //   "colors": [
    //     "white",
    //     "black"
    //   ]
    // }

    Get pvComObject of hoJsonB to vJsonB
    Get ComAddObjectCopyAt Of hoJsonA 1 "info" vJsonB To iSuccess

    Get ComEmit Of hoJsonA To sTemp1
    Showln sTemp1

    // The result is this:

    // {
    //   "animal": "zebra",
    //   "info": {
    //     "type": "mammal",
    //     "carnivore": false
    //   },
    //   "colors": [
    //     "white",
    //     "black"
    //   ]
    // }


End_Procedure