Sample code for 30+ languages & platforms
AutoIt

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 AutoIt Downloads

AutoIt
Local $bSuccess = False

;  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"
;  			}
;  		]
;  	  }
;  	]
;  }

$oJson = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJson.LoadFile("qa_data/json/menus.json")
If ($bSuccess = False) Then
    ConsoleWrite($oJson.LastErrorText & @CRLF)
    Exit
EndIf

;  Find Menu B.
Local $oMenu = $oJson.FindRecord("menus","name","Menu B",True)
;  assume menu is found..

;  Get the categories array, and then find the index of the "Pasta" menu category.
Local $oCatArr = $oMenu.ArrayOf("categories")
;  Assume it is found..

;  Find the object where the name of the JSON member is "name", and the value is "Pasta"
Local $index = $oCatArr.FindObject("name","Pasta",True)
If ($index < 0) Then
    ConsoleWrite("Pasta not found." & @CRLF)
Else

    ;  Delete the "Pasta" category record from Menu B
    $bSuccess = $oCatArr.DeleteAt($index)
    ;  Assume OK..
EndIf

;  Examine the JSON to see if it worked as expected..
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)