JSON (JavaScript Object Notation)

Manipulation des données JSON

En Dart, le package dart:convert fournit des outils pour convertir des objets Dart en format JSON (JavaScript Object Notation) et vice versa. Cela est utile pour échanger des données avec des services web ou des fichiers qui utilisent le format JSON.

Convertir un objet en JSON

Utilisez la méthode jsonEncode du package dart:convert pour convertir un objet Dart en JSON :

import 'dart:convert';

void main() {
  Map<String, dynamic> person = {
    'name': 'Alice',
    'age': 30,
    'isEmployed': true,
  };

  String jsonPerson = jsonEncode(person);
  print(jsonPerson);
}

Dans cet exemple, un objet person est converti en une chaîne JSON à l'aide de jsonEncode.

Convertir du JSON en objet

Utilisez la méthode jsonDecode du package dart:convert pour convertir une chaîne JSON en un objet Dart :

import 'dart:convert';

void main() {
  String jsonPerson = '{"name": "Alice", "age": 30, "isEmployed": true}';
  Map<String, dynamic> person = jsonDecode(jsonPerson);
  
  print('Name: ${person['name']}');
  print('Age: ${person['age']}');
  print('Is Employed: ${person['isEmployed']}');
}

Dans cet exemple, la chaîne JSON jsonPerson est convertie en un objet Dart person à l'aide de jsonDecode.

Gérer des données complexes

Pour gérer des données JSON complexes, vous pouvez utiliser des classes Dart qui représentent la structure des données JSON. Voici un exemple :

import 'dart:convert';

class Person {
  String name;
  int age;
  bool isEmployed;

  Person({required this.name, required this.age, required this.isEmployed});

  factory Person.fromJson(Map<String, dynamic> json) {
    return Person(
      name: json['name'],
      age: json['age'],
      isEmployed: json['isEmployed'],
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'name': name,
      'age': age,
      'isEmployed': isEmployed,
    };
  }
}

void main() {
  String jsonPerson = '{"name": "Alice", "age": 30, "isEmployed": true}';
  Map<String, dynamic> jsonData = jsonDecode(jsonPerson);
  Person person = Person.fromJson(jsonData);

  print('Name: ${person.name}');
  print('Age: ${person.age}');
  print('Is Employed: ${person.isEmployed}');
}

Dans cet exemple, la classe Person est utilisée pour représenter la structure des données JSON et pour convertir les données JSON en objets Dart et vice versa.

Dernière mise à jour