Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Find and Delete Object from JSON ArrayDemonstrates how to find an delete an object from a JSON array of objects.
IncludeFile "CkJsonArray.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; 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" ; } ; ] ; } ; ] ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(json,"qa_data/json/menus.json") If success = 0 Debug CkJsonObject::ckLastErrorText(json) CkJsonObject::ckDispose(json) ProcedureReturn EndIf ; Find Menu B. menu.i = CkJsonObject::ckFindRecord(json,"menus","name","Menu B",1) ; assume menu is found.. ; Get the categories array, and then find the index of the "Pasta" menu category. catArr.i = CkJsonObject::ckArrayOf(menu,"categories") ; Assume it is found.. ; Find the object where the name of the JSON member is "name", and the value is "Pasta" index.i = CkJsonArray::ckFindObject(catArr,"name","Pasta",1) If index < 0 Debug "Pasta not found." Else ; Delete the "Pasta" category record from Menu B success = CkJsonArray::ckDeleteAt(catArr,index) ; Assume OK.. EndIf ; Examine the JSON to see if it worked as expected.. CkJsonObject::setCkEmitCompact(json, 0) Debug CkJsonObject::ckEmit(json) CkJsonArray::ckDispose(catArr) CkJsonObject::ckDispose(menu) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.