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

Visual FoxPro
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