Функция jsonEncode
Функция jsonEncode принимает объект Dart
и возвращает его строковое представление в
формате JSON. В первый параметр мы передаем
значение, которое нужно закодировать: это может
быть число, строка, булево значение, список,
словарь или null. Во второй необязательный
параметр можно передать функцию toEncodable,
которая вызывается для объектов, не
поддерживающих прямую сериализацию. Функция
возвращает строку в кодировке UTF-8.
Синтаксис
jsonEncode(object, [toEncodable])
Пример
Давайте закодируем словарь с простыми значениями в JSON строку:
import 'dart:convert';
void main()
{
Map<String, dynamic> data = {
'name': 'abcde',
'age': 25,
'active': true
};
String res = jsonEncode(data);
print(res);
}
Результат выполнения кода:
{"name":"abcde","age":25,"active":true}
Пример
Давайте закодируем список чисел в JSON строку:
import 'dart:convert';
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
String res = jsonEncode(numbers);
print(res);
}
Результат выполнения кода:
[1,2,3,4,5]
Пример
Давайте закодируем вложенную структуру из словаря и списка:
import 'dart:convert';
void main()
{
Map<String, dynamic> data = {
'items': ['a', 'b', 'c', 'd', 'e'],
'count': 5,
'info': {
'code': 12345,
'valid': true
}
};
String res = jsonEncode(data);
print(res);
}
Результат выполнения кода:
{"items":["a","b","c","d","e"],"count":5,"info":{"code":12345,"valid":true}}
Пример
Давайте передадим во второй параметр функцию
toEncodable, которая преобразует объект
неподдерживаемого типа в строку:
import 'dart:convert';
class Point
{
int x;
int y;
Point(this.x, this.y);
}
void main()
{
Point point = Point(1, 2);
String res = jsonEncode(
point,
(object) => 'Point(${object.x}, ${object.y})'
);
print(res);
}
Результат выполнения кода:
"Point(1, 2)"
Смотрите также
-
функция
jsonDecode,
которая декодирует JSON строку -
метод
encode,
который кодирует объект через JsonCodec -
класс
JsonEncoder,
который представляет собой кодировщик JSON -
параметр
toEncodable,
который задает функцию для неподдерживаемых объектов