PowerBuilder
PowerBuilder
Find and Delete Object from JSON Array
See more JSON Examples
Demonstrates how to find an delete an object from a JSON array of objects.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Json
oleobject loo_Menu
oleobject loo_CatArr
integer li_Index
li_Success = 0
// This example will delete the "Pasta" category object from Menu B.
// {
// "menus": [
// {
// "name": "Menu A",
// "categories": [
// {
// "name": "Kebabs",
// "description": "blah blah blah"
// },
// {
// "name": "Burgers",
// "description": "blah blah blah"
// },
// {
// "name": "Pasta",
// "description": "blah blah blah"
// },
// {
// "name": "Appetizers",
// "description": "blah blah blah"
// }
// ]
// },
// {
// "name": "Menu B",
// "categories": [
// {
// "name": "Kebabs",
// "description": "blah blah blah"
// },
// {
// "name": "Burgers",
// "description": "blah blah blah"
// },
// {
// "name": "Pasta",
// "description": "blah blah blah"
// },
// {
// "name": "Appetizers",
// "description": "blah blah blah"
// }
// ]
// }
// ]
// }
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
li_Success = loo_Json.LoadFile("qa_data/json/menus.json")
if li_Success = 0 then
Write-Debug loo_Json.LastErrorText
destroy loo_Json
return
end if
// Find Menu B.
loo_Menu = loo_Json.FindRecord("menus","name","Menu B",1)
// assume menu is found..
// Get the categories array, and then find the index of the "Pasta" menu category.
loo_CatArr = loo_Menu.ArrayOf("categories")
// Assume it is found..
// Find the object where the name of the JSON member is "name", and the value is "Pasta"
li_Index = loo_CatArr.FindObject("name","Pasta",1)
if li_Index < 0 then
Write-Debug "Pasta not found."
else
// Delete the "Pasta" category record from Menu B
li_Success = loo_CatArr.DeleteAt(li_Index)
// Assume OK..
end if
// Examine the JSON to see if it worked as expected..
loo_Json.EmitCompact = 0
Write-Debug loo_Json.Emit()
destroy loo_CatArr
destroy loo_Menu
destroy loo_Json