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