В 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 и эффективно работать с сериализованными данными.
Не забудьте импортировать необходимые библиотеки и пакеты перед их использованием. Приятного кодирования!