PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkJsonArray.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 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"
; }
; ]
; }
; ]
; }
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = 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