DataFlex
DataFlex
Insert JSON Array into another JSON Object
See more JSON Examples
Demonstrates how to insert a JSON array into a JSON object.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoJsonA
Boolean iSuccess
Handle hoJsonB
Variant vJsonUsersDest
Handle hoJsonUsersDest
Variant vJsonUsersSrc
Handle hoJsonUsersSrc
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 "ciphertext" "encryptedData" To iSuccess
Get ComUpdateInt Of hoJsonA "status" 200 To iSuccess
Get ComUpdateString Of hoJsonA "error" "errorMsg" To iSuccess
Set ComEmitCompact Of hoJsonA To False
Get ComEmit Of hoJsonA To sTemp1
Showln sTemp1
// jsonA contains:
// {
// "ciphertext": "encryptedData",
// "status": 200,
// "error": "errorMsg"
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonB
If (Not(IsComObjectCreated(hoJsonB))) Begin
Send CreateComObject of hoJsonB
End
Get ComUpdateString Of hoJsonB "users[0].role" "Surgeon" To iSuccess
Get ComUpdateNewArray Of hoJsonB "users[0].sub_roles" To iSuccess
Get ComUpdateBool Of hoJsonB "users[0].viewable_for_sharing" True To iSuccess
Get ComUpdateInt Of hoJsonB "users[0].eula_create_date" 123 To iSuccess
Get ComUpdateString Of hoJsonB "users[1].role" "Support" To iSuccess
Get ComUpdateString Of hoJsonB "users[1].sub_roles[0]" "Tech" To iSuccess
Get ComUpdateString Of hoJsonB "users[1].sub_roles[1]" "Service" To iSuccess
Get ComUpdateBool Of hoJsonB "users[1].viewable_for_sharing" True To iSuccess
Get ComUpdateInt Of hoJsonB "users[1].eula_create_date" 123 To iSuccess
Set ComEmitCompact Of hoJsonB To False
Get ComEmit Of hoJsonB To sTemp1
Showln sTemp1
// jsonB contains:
// {
// "users": [
// {
// "role": "Surgeon",
// "sub_roles": [],
// "viewable_for_sharing": true,
// "eula_create_date": 1649108922482
// },
// {
// "role": "Support",
// "sub_roles": [
// "Tech",
// "Service"
// ],
// "viewable_for_sharing": true,
// "eula_create_date": 1649108951523
// }
// ]
// }
// Let's say we want to insert jsonB into jsonA to get this:
// {
// "ciphertext": "encryptedData",
// "status": 200,
// "error": "errorMsg",
// "users": [
// {
// "role": "Surgeon",
// "sub_roles": [],
// "viewable_for_sharing": true,
// "eula_create_date": 1649108922482
// },
// {
// "role": "Support",
// "sub_roles": [
// "Tech",
// "Service"
// ],
// "viewable_for_sharing": true,
// "eula_create_date": 1649108951523
// }
// ]
// }
// The destination is the empty "users" array, the source is the populated "users" array in jsonB.
Get Create (RefClass(cComChilkatJsonArray)) To hoJsonUsersDest
If (Not(IsComObjectCreated(hoJsonUsersDest))) Begin
Send CreateComObject of hoJsonUsersDest
End
Get pvComObject of hoJsonUsersDest to vJsonUsersDest
Get ComAppendArray2 Of hoJsonA "users" vJsonUsersDest To iSuccess
Get Create (RefClass(cComChilkatJsonArray)) To hoJsonUsersSrc
If (Not(IsComObjectCreated(hoJsonUsersSrc))) Begin
Send CreateComObject of hoJsonUsersSrc
End
Get pvComObject of hoJsonUsersSrc to vJsonUsersSrc
Get ComArrayOf2 Of hoJsonB "users" vJsonUsersSrc To iSuccess
// Copy the array items from source to dest
Get pvComObject of hoJsonUsersSrc to vJsonUsersSrc
Get ComAppendArrayItems Of hoJsonUsersDest vJsonUsersSrc To iSuccess
Get ComEmit Of hoJsonA To sTemp1
Showln sTemp1
// The end result is this:
// {
// "ciphertext": "encryptedData",
// "status": 200,
// "error": "errorMsg",
// "users": [
// {
// "role": "Surgeon",
// "sub_roles": [
// ],
// "viewable_for_sharing": true,
// "eula_create_date": 123
// },
// {
// "role": "Support",
// "sub_roles": [
// "Tech",
// "Service"
// ],
// "viewable_for_sharing": true,
// "eula_create_date": 123
// }
// ]
// }
End_Procedure