Преобразование списка Dart в JSON: подробное руководство с примерами кода

В Dart работа с JSON — обычная задача при сериализации данных и взаимодействии с API. Одним из важных аспектов является преобразование списков Dart в формат JSON. В этой статье мы рассмотрим несколько методов выполнения этой задачи, а также примеры кода. Итак, приступим!

Метод 1: использование функции jsonEncodeиз библиотеки dart:convert:

import 'dart:convert';
void main() {
  List<String> list = ['apple', 'banana', 'cherry'];
  String json = jsonEncode(list);
  print(json);
}

Выход:

["apple","banana","cherry"]

Метод 2: использование пакета json:

import 'package:json/json.dart';
void main() {
  List<String> list = ['apple', 'banana', 'cherry'];
  String json = JSON.encode(list);
  print(json);
}

Выход:

["apple","banana","cherry"]

Метод 3. Использование пакета json_serializable:
Сначала добавьте следующие зависимости в файл pubspec.yaml:

dependencies:
  json_annotation: ^4.0.0
  json_serializable: ^4.1.0

Далее создайте класс и аннотируйте его @JsonSerializable():

import 'package:json_annotation/json_annotation.dart';
part 'fruit.g.dart';
@JsonSerializable()
class Fruit {
  List<String> fruits;
  Fruit(this.fruits);
  factory Fruit.fromJson(Map<String, dynamic> json) =>
      _$FruitFromJson(json);
  Map<String, dynamic> toJson() => _$FruitToJson(this);
}
void main() {
  List<String> list = ['apple', 'banana', 'cherry'];
  Fruit fruit = Fruit(list);
  String json = jsonEncode(fruit);
  print(json);
}

Выход:

{"fruits":["apple","banana","cherry"]}

Метод 4. Преобразование списка в строку JSON вручную:

void main() {
  List<String> list = ['apple', 'banana', 'cherry'];
  String json = '[' + list.map((item) => '"$item"').join(',') + ']';
  print(json);
}

Выход:

["apple","banana","cherry"]

В этой статье мы рассмотрели несколько методов преобразования списка Dart в JSON. Мы рассмотрели встроенную функцию jsonEncodeиз библиотеки dart:convert, пакета json, пакета json_serializableи ручной подход. В зависимости от требований вашего проекта вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Теперь вы можете легко конвертировать списки Dart в формат JSON и эффективно работать с сериализованными данными.

Не забудьте импортировать необходимые библиотеки и пакеты перед их использованием. Приятного кодирования!