Sample code for 30+ languages & platforms
PowerBuilder

JSON AddArrayCopyAt Example

Demonstrates the AddArrayCopyAt function.

Note: This example requires Chilkat v9.5.0.82 or above.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
oleobject loo_Json
oleobject loo_Jarr

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
    destroy loo_Json
    MessageBox("Error","Connecting to COM object failed")
    return
end if
loo_Json.Load("{ ~"name~": ~"John~", ~"marbles~": 100 }")

loo_Jarr = create oleobject
li_rc = loo_Jarr.ConnectToNewObject("Chilkat.JsonArray")

loo_Jarr.Load("[ 1, 2, 3, ~"apple~", ~"orange~", [ 10, 20, 30 ], { ~"name~": ~"Luther~"} ]")

// Copy the contents of jar to a new array member named "stuff".
// Insert the array at the 2nd position
loo_Json.AddArrayCopyAt(1,"stuff",loo_Jarr)

Write-Debug loo_Json.Emit()
// Expected output is:  {"name":"John","stuff":[1,2,3,"apple","orange",[10,20,30],{"name":"Luther"}],"marbles":100}

// Note: The contents of the array were copied.
// If we modify the contents of jarr, it does not modify the array contained within "json" because it is a separate copy.
// For example:
loo_Jarr.AddIntAt(-1,2020)
Write-Debug loo_Jarr.Emit()
// Expected output: [1,2,3,"apple","orange",[10,20,30],{"name":"Luther"},2020]

Write-Debug loo_Json.Emit()
// Remains unchanged: {"name":"John","stuff":[1,2,3,"apple","orange",[10,20,30],{"name":"Luther"}],"marbles":100}


destroy loo_Json
destroy loo_Jarr