DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Variant vMenu
Handle hoMenu
Variant vCatArr
Handle hoCatArr
Integer iIndex
String sTemp1
Move False To iSuccess
// 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"
// }
// ]
// }
// ]
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComLoadFile Of hoJson "qa_data/json/menus.json" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
// Find Menu B.
Get ComFindRecord Of hoJson "menus" "name" "Menu B" True To vMenu
If (IsComObject(vMenu)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoMenu
Set pvComObject Of hoMenu To vMenu
End
// assume menu is found..
// Get the categories array, and then find the index of the "Pasta" menu category.
Get ComArrayOf Of hoMenu "categories" To vCatArr
If (IsComObject(vCatArr)) Begin
Get Create (RefClass(cComChilkatJsonArray)) To hoCatArr
Set pvComObject Of hoCatArr To vCatArr
End
// Assume it is found..
// Find the object where the name of the JSON member is "name", and the value is "Pasta"
Get ComFindObject Of hoCatArr "name" "Pasta" True To iIndex
If (iIndex < 0) Begin
Showln "Pasta not found."
End
Else Begin
// Delete the "Pasta" category record from Menu B
Get ComDeleteAt Of hoCatArr iIndex To iSuccess
// Assume OK..
End
// Examine the JSON to see if it worked as expected..
Set ComEmitCompact Of hoJson To False
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
Send Destroy of hoCatArr
Send Destroy of hoMenu
End_Procedure