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