PowerBuilder
PowerBuilder
Modify Parts of JSON Document
See more JSON Examples
Demonstrates how to modify parts of a JSON document. This example uses the following JSON document:
{
"fruit": [
{
"kind": "apple",
"count": 24,
"fresh": true,
"extraInfo": null,
"listA": [ "abc", 1, null, false ],
"objectB": { "animal" : "monkey" }
},
{
"kind": "pear",
"count": 18,
"fresh": false,
"extraInfo": null
"listA": [ "xyz", 24, null, true ],
"objectB": { "animal" : "lemur" }
}
],
"list" : [ "banana", 12, true, null, "orange", 12.5, { "ticker": "AAPL" }, [ 1, 2, 3, 4, 5 ] ],
"alien" : true
}
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Json
oleobject loo_ListA
integer li_BNull
oleobject loo_TickerObj
oleobject loo_Aa
oleobject loo_AFruit
oleobject loo_AppleObj
oleobject loo_PearObj
li_Success = 0
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
// Load the JSON from a file.
li_Success = loo_Json.LoadFile("qa_data/json/modifySample.json")
if li_Success = 0 then
Write-Debug loo_Json.LastErrorText
destroy loo_Json
return
end if
// This example will not check for errors (i.e. null / false / 0 return values)...
// Get the "list" array:
loo_ListA = create oleobject
li_rc = loo_ListA.ConnectToNewObject("Chilkat.JsonArray")
loo_Json.ArrayOf2("list",loo_ListA)
// Modify values in the list.
// Change banana to plantain
li_Success = loo_ListA.SetStringAt(0,"plantain")
// Change 12 to 24
li_Success = loo_ListA.SetIntAt(1,24)
// Change true to false
li_Success = loo_ListA.SetBoolAt(2,0)
// Is the 3rd item null?
li_BNull = loo_ListA.IsNullAt(3)
// Change "orange" to 32.
li_Success = loo_ListA.SetIntAt(4,32)
// Change 12.5 to 31.2
li_Success = loo_ListA.SetNumberAt(5,"31.2")
// Replace the { "ticker" : "AAPL" } object with { "ticker" : "GOOG" }
// Do this by deleting, then inserting a new object at the same location.
li_Success = loo_ListA.DeleteAt(6)
loo_TickerObj = create oleobject
li_rc = loo_TickerObj.ConnectToNewObject("Chilkat.JsonObject")
loo_ListA.AddObjectAt2(6,loo_TickerObj)
li_Success = loo_TickerObj.AppendString("ticker","GOOG")
// Replace "[ 1, 2, 3, 4, 5 ]" with "[ "apple", 22, true, null, 1080.25 ]"
li_Success = loo_ListA.DeleteAt(7)
loo_Aa = create oleobject
li_rc = loo_Aa.ConnectToNewObject("Chilkat.JsonArray")
loo_ListA.AddArrayAt2(7,loo_Aa)
li_Success = loo_Aa.AddStringAt(-1,"apple")
li_Success = loo_Aa.AddIntAt(-1,22)
li_Success = loo_Aa.AddBoolAt(-1,1)
li_Success = loo_Aa.AddNullAt(-1)
li_Success = loo_Aa.AddNumberAt(-1,"1080.25")
// Get the "fruit" array
loo_AFruit = create oleobject
li_rc = loo_AFruit.ConnectToNewObject("Chilkat.JsonArray")
loo_Json.ArrayAt2(0,loo_AFruit)
// Get the 1st element:
loo_AppleObj = create oleobject
li_rc = loo_AppleObj.ConnectToNewObject("Chilkat.JsonObject")
loo_AFruit.ObjectAt2(0,loo_AppleObj)
// Modify values by member name:
li_Success = loo_AppleObj.SetStringOf("fruit","fuji_apple")
li_Success = loo_AppleObj.SetIntOf("count",46)
li_Success = loo_AppleObj.SetBoolOf("fresh",0)
li_Success = loo_AppleObj.SetStringOf("extraInfo","developed by growers at the Tohoku Research Station in Fujisaki")
// Modify values by index:
loo_PearObj = create oleobject
li_rc = loo_PearObj.ConnectToNewObject("Chilkat.JsonObject")
loo_AFruit.ObjectAt2(1,loo_PearObj)
li_Success = loo_PearObj.SetStringAt(0,"bartlett_pear")
li_Success = loo_PearObj.SetIntAt(1,12)
li_Success = loo_PearObj.SetBoolAt(2,0)
li_Success = loo_PearObj.SetStringAt(3,"harvested in late August to early September")
loo_Json.EmitCompact = 0
Write-Debug loo_Json.Emit()
destroy loo_Json
destroy loo_ListA
destroy loo_TickerObj
destroy loo_Aa
destroy loo_AFruit
destroy loo_AppleObj
destroy loo_PearObj