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)