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
long i
long 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