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

Класс JsonDecoder

Класс JsonDecoder используется для преобразования данных из формата JSON в структуры данных, понятные языку Dart. В отличие от простой функции jsonDecode, данный класс позволяет настроить процесс декодирования, например, передать функцию для обработки каждого элемента. Экземпляр класса создается через конструктор JsonDecoder, а метод convert принимает строку для декодирования.

Синтаксис

JsonDecoder().convert(str)

Пример

Давайте создадим экземпляр декодера и преобразуем простую JSON-строку в словарь Dart:

import 'dart:convert'; void main() { String str = '{"a": 1, "b": 2, "c": 3}'; JsonDecoder decoder = JsonDecoder(); var res = decoder.convert(str); print(res); }

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

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

Пример

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

import 'dart:convert'; void main() { String str = '["a", "b", "c", "d", "e"]'; JsonDecoder decoder = JsonDecoder(); var res = decoder.convert(str); print(res); }

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

[a, b, c, d, e]

Пример

Давайте воспользуемся вторым параметром reviver для преобразования значений в процессе декодирования. Умножим каждое число на два:

import 'dart:convert'; void main() { String str = '{"a": 1, "b": 2, "c": 3}'; JsonDecoder decoder = JsonDecoder((key, value) { if (value is int) { return value * 2; } return value; }); var res = decoder.convert(str); print(res); }

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

{a: 2, b: 4, c: 6}

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

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