Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpJsEn 111 of 224 menu
◀ ▶

Запись в строку в Dart

Запись в строку начинается с готовых данных в памяти. Функция jsonEncode из dart:convert собирает компактный JSON без лишних пробелов и переносов строк из карты, списка, строки или числа.

Описание доставки удобно хранить как класс с идентификатором и весом посылки. Метод toJson возвращает карту с ключами, которые должны появиться в тексте:

import 'dart:convert'; class Shipment { Shipment(this.id, this.weightKg); final String id; final double weightKg; Map<String, Object?> toJson() => { 'id': id, 'weightKg': weightKg, }; } var parcel = Shipment('A-17', 2.5); var text = jsonEncode(parcel.toJson()); print(text);

В выводе имена ключей совпадают с картой из toJson, числа и строки записываются в формате, принятом для JSON. Тот же прием подходит к списку внутри карты или к nullable-полю, если в карту попало значение null.

Иногда строку нужно собрать с отступами для чтения человеком. Объект JsonEncoder с параметром indent разбивает результат на строки с вложенностью:

import 'dart:convert'; class Shipment { Shipment(this.id, this.weightKg); final String id; final double weightKg; Map<String, Object?> toJson() => { 'id': id, 'weightKg': weightKg, }; } var parcel = Shipment('B-02', 0.8); var pretty = const JsonEncoder.withIndent(' '); print(pretty.convert(parcel.toJson()));

Опишите класс Ticket с полями code типа String и price типа int, добавьте toJson. Создайте билет с кодом "K7" и ценой 1200, запишите его в JSON-строку и выведите результат.

Для того же типа включите красивый вывод через JsonEncoder.withIndent. Запишите билет с кодом "M1" и ценой 500 и выведите многострочный текст.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить