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

Функция jsonDecode

Функция jsonDecode декодирует строку в формате JSON и возвращает соответствующий объект Dart. В первый параметр мы передаем строку в формате JSON, которую нужно декодировать. Во второй необязательный параметр мы передаем функцию reviver, которая позволяет преобразовать отдельные значения во время декодирования. Если строка содержит некорректный JSON, функция выбрасывает исключение FormatException.

Синтаксис

jsonDecode(source, [reviver])

Пример

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

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

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

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

Пример

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

import 'dart:convert'; void main() { String source = '[1, 2, 3, 4, 5]'; var res = jsonDecode(source); print(res); print(res[0]); }

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

[1, 2, 3, 4, 5] 1

Пример

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

import 'dart:convert'; void main() { String source = '{"a": {"b": "abcde"}}'; var res = jsonDecode(source); print(res['a']['b']); }

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

"abcde"

Пример

Давайте передадим во второй параметр функцию reviver, которая преобразует все числа, умножая их на 10:

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

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

{a: 10, b: 20, c: 30}

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

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