Sample code for 30+ languages & platforms
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

PowerBuilder
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