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

Параметр reviver у jsonDecode

Параметр reviver передается вторым аргументом в функцию jsonDecode и представляет собой функцию обратного вызова, которая вызывается для каждой пары ключ-значение при декодировании JSON-строки. В первый параметр этой функции передается ключ (имя свойства), во второй - уже декодированное значение. Функция reviver должна вернуть новое значение, которое заменит исходное в результирующей структуре. Если вернуть то же самое значение, оно останется без изменений.

Синтаксис

jsonDecode(source, reviver(key, value))

Пример

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

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

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

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

Пример

Давайте с помощью reviver преобразуем все строковые значения в верхний регистр:

import 'dart:convert'; void main() { String json = '{"name": "abcde", "city": "12345"}'; var res = jsonDecode(json, (key, value) { if (value is String) { return value.toUpperCase(); } return value; }); print(res); }

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

{name: ABCDE, city: 12345}

Пример

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

import 'dart:convert'; void main() { String json = '{"a": 1, "_b": 2, "c": 3, "_d": 4}'; var res = jsonDecode(json, (key, value) { if (key is String && key.startsWith('_')) { return null; } return value; }); print(res); }

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

{a: 1, c: 3}

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

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