Функция 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,
который преобразует значения при декодировании