Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = 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"
// }
// ]
// }
// ]
// }
let json = CkoJsonObject()!
success = json.loadFile(path: "qa_data/json/menus.json")
if success == false {
print("\(json.lastErrorText!)")
return
}
// Find Menu B.
var menu: CkoJsonObject? = json.findRecord(arrayPath: "menus", relPath: "name", value: "Menu B", caseSensitive: true)
// assume menu is found..
// Get the categories array, and then find the index of the "Pasta" menu category.
var catArr: CkoJsonArray? = menu!.array(of: "categories")
// Assume it is found..
// Find the object where the name of the JSON member is "name", and the value is "Pasta"
var index: Int = catArr!.find(name: "name", value: "Pasta", caseSensitive: true).intValue
if index < 0 {
print("Pasta not found.")
}
else {
// Delete the "Pasta" category record from Menu B
success = catArr!.delete(at: index)
// Assume OK..
}
// Examine the JSON to see if it worked as expected..
json.emitCompact = false
print("\(json.emit()!)")
catArr = nil
menu = nil
}