Sample code for 30+ languages & platforms
PowerBuilder

JSON Copy Objects

See more JSON Examples

Copy objects from one JSON document to another.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
oleobject loo_Json1
oleobject loo_Json2
integer i
integer li_NumMembers
oleobject loo_JsonObj

loo_Json1 = create oleobject
li_rc = loo_Json1.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
    destroy loo_Json1
    MessageBox("Error","Connecting to COM object failed")
    return
end if
loo_Json1.UpdateString("ID1.cn","Name")
loo_Json1.UpdateString("ID1.objectGUID","GUID")
loo_Json1.UpdateString("ID2.cn","Name")
loo_Json1.UpdateString("ID2.objectGUID","GUID")

loo_Json1.EmitCompact = 0
Write-Debug loo_Json1.Emit()

// json1 contains:
// {
//   "ID1": {
//     "cn": "Name",
//     "objectGUID": "GUID"
//   },
//   "ID2": {
//     "cn": "Name",
//     "objectGUID": "GUID"
//   }
// }

loo_Json2 = create oleobject
li_rc = loo_Json2.ConnectToNewObject("Chilkat.JsonObject")

loo_Json2.UpdateString("Name1.ID1.cn","Name")
loo_Json2.UpdateString("Name1.ID1.objectGUID","GUID")
loo_Json2.UpdateString("Name1.ID2.cn","Name")
loo_Json2.UpdateString("Name1.ID2.objectGUID","GUID")
loo_Json2.UpdateString("Name2.ID3.cn","Name")
loo_Json2.UpdateString("Name2.ID3.objectGUID","GUID")

loo_Json2.EmitCompact = 0
Write-Debug loo_Json2.Emit()

// {
//   "Name1": {
//     "ID1": {
//       "cn": "Name",
//       "objectGUID": "GUID"
//     },
//     "ID2": {
//       "cn": "Name",
//       "objectGUID": "GUID"
//     }
//   },
//   "Name2": {
//     "ID3": {
//       "cn": "Name",
//       "objectGUID": "GUID"
//     }
//   }
// }

// Copy Name1, Name2 into json1

i = 0
li_NumMembers = loo_Json2.Size
do while i < li_NumMembers
    loo_JsonObj = loo_Json2.ObjectAt(i)
    loo_Json1.AppendObjectCopy(loo_Json2.NameAt(i),loo_JsonObj)
    i = i + 1
loop

// Now see what json1 contains:
Write-Debug loo_Json1.Emit()

// {
//   "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"
//     }
//   }
// }


destroy loo_Json1
destroy loo_Json2