РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
554 of 723 menu

Класс JsonEncoder

Класс JsonEncoder преобразует объекты Dart (такие как числа, строки, списки, словари) в строку формата JSON. В первом параметре конструктора можно передать функцию toEncodable, которая будет вызываться для объектов, не поддерживающих прямую сериализацию. Второй параметр indent задает строку отступа для форматирования результата.

Синтаксис

JsonEncoder([Object? toEncodable(Object? object)?, String? indent])

Пример

Давайте закодируем словарь с простыми значениями:

import 'dart:convert'; void main() { var encoder = JsonEncoder(); var data = {'a': 1, 'b': 2, 'c': 3}; print(encoder.convert(data)); }

Результат выполнения кода:

{"a":1,"b":2,"c":3}

Пример

Давайте используем параметр indent для форматирования вывода:

import 'dart:convert'; void main() { var encoder = JsonEncoder(null, ' '); var data = {'a': 1, 'b': 2}; print(encoder.convert(data)); }

Результат выполнения кода:

{ "a": 1, "b": 2 }

Пример

Давайте закодируем список строк:

import 'dart:convert'; void main() { var encoder = JsonEncoder(); var data = ['a', 'b', 'c', 'd', 'e']; print(encoder.convert(data)); }

Результат выполнения кода:

["a","b","c","d","e"]

Пример

Давайте передадим функцию toEncodable, чтобы закодировать объект пользовательского класса:

import 'dart:convert'; class Point { int x; int y; Point(this.x, this.y); } void main() { var encoder = JsonEncoder((object) { if (object is Point) { return {'x': object.x, 'y': object.y}; } return object.toString(); }); var point = Point(1, 2); print(encoder.convert(point)); }

Результат выполнения кода:

{"x":1,"y":2}

Смотрите также

  • класс JsonCodec,
    который объединяет кодирование и декодирование JSON
  • метод encode,
    который кодирует объект в строку JSON
  • метод decode,
    который декодирует строку JSON в объект Dart
  • функция jsonEncode,
    которая является упрощенной оберткой для JsonEncoder
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить