Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJson
LOCAL loMenu
LOCAL loCatArr
LOCAL lnIndex
lnSuccess = 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"
* }
* ]
* }
* ]
* }
loJson = CreateObject('Chilkat.JsonObject')
lnSuccess = loJson.LoadFile("qa_data/json/menus.json")
IF (lnSuccess = 0) THEN
? loJson.LastErrorText
RELEASE loJson
CANCEL
ENDIF
* Find Menu B.
loMenu = loJson.FindRecord("menus","name","Menu B",1)
* assume menu is found..
* Get the categories array, and then find the index of the "Pasta" menu category.
loCatArr = loMenu.ArrayOf("categories")
* Assume it is found..
* Find the object where the name of the JSON member is "name", and the value is "Pasta"
lnIndex = loCatArr.FindObject("name","Pasta",1)
IF (lnIndex < 0) THEN
? "Pasta not found."
ELSE
* Delete the "Pasta" category record from Menu B
lnSuccess = loCatArr.DeleteAt(lnIndex)
* Assume OK..
ENDIF
* Examine the JSON to see if it worked as expected..
loJson.EmitCompact = 0
? loJson.Emit()
RELEASE loCatArr
RELEASE loMenu
RELEASE loJson