Sample code for 30+ languages & platforms
Dart

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // 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"
  // 			}
  // 		]
  // 	  }
  // 	]
  // }

  final json = CkJsonObject();
  try {
    json.loadFile('qa_data/json/menus.json');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Find Menu B.
  final menu = json.findRecord('menus', 'name', 'Menu B', true);
  // assume menu is found..

  // Get the categories array, and then find the index of the "Pasta" menu category.
  final catArr = menu.arrayOf('categories');
  // Assume it is found..

  // Find the object where the name of the JSON member is "name", and the value is "Pasta"
  final index = catArr.findObject('name', 'Pasta', true);
  if (index < 0) {
    print('Pasta not found.');
  } else {

    // Delete the "Pasta" category record from Menu B
    catArr.deleteAt(index);
    // Assume OK..
  }

  // Examine the JSON to see if it worked as expected..
  json.emitCompact = false;
  print(json.emit());
}