DataFlex
DataFlex
JSON Copy Objects
See more JSON Examples
Copy objects from one JSON document to another.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoJson1
Boolean iSuccess
Handle hoJson2
Integer i
Integer iNumMembers
Variant vJsonObj
Handle hoJsonObj
String sTemp1
Get Create (RefClass(cComChilkatJsonObject)) To hoJson1
If (Not(IsComObjectCreated(hoJson1))) Begin
Send CreateComObject of hoJson1
End
Get ComUpdateString Of hoJson1 "ID1.cn" "Name" To iSuccess
Get ComUpdateString Of hoJson1 "ID1.objectGUID" "GUID" To iSuccess
Get ComUpdateString Of hoJson1 "ID2.cn" "Name" To iSuccess
Get ComUpdateString Of hoJson1 "ID2.objectGUID" "GUID" To iSuccess
Set ComEmitCompact Of hoJson1 To False
Get ComEmit Of hoJson1 To sTemp1
Showln sTemp1
// json1 contains:
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson2
If (Not(IsComObjectCreated(hoJson2))) Begin
Send CreateComObject of hoJson2
End
Get ComUpdateString Of hoJson2 "Name1.ID1.cn" "Name" To iSuccess
Get ComUpdateString Of hoJson2 "Name1.ID1.objectGUID" "GUID" To iSuccess
Get ComUpdateString Of hoJson2 "Name1.ID2.cn" "Name" To iSuccess
Get ComUpdateString Of hoJson2 "Name1.ID2.objectGUID" "GUID" To iSuccess
Get ComUpdateString Of hoJson2 "Name2.ID3.cn" "Name" To iSuccess
Get ComUpdateString Of hoJson2 "Name2.ID3.objectGUID" "GUID" To iSuccess
Set ComEmitCompact Of hoJson2 To False
Get ComEmit Of hoJson2 To sTemp1
Showln sTemp1
// {
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
// Copy Name1, Name2 into json1
Move 0 To i
Get ComSize Of hoJson2 To iNumMembers
While (i < iNumMembers)
Get ComObjectAt Of hoJson2 i To vJsonObj
If (IsComObject(vJsonObj)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonObj
Set pvComObject Of hoJsonObj To vJsonObj
End
Get ComNameAt Of hoJson2 i To sTemp1
Get ComAppendObjectCopy Of hoJson1 sTemp1 vJsonObj To iSuccess
Move (i + 1) To i
Loop
// Now see what json1 contains:
Get ComEmit Of hoJson1 To sTemp1
Showln sTemp1
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
End_Procedure