Spec-Zone.ru › Dart 2

Библиотека dart:convert

Кодировщики и декодировщики для преобразования между различными представлениями данных, включая JSON и UTF-8.

В дополнение к преобразователям для распространённых представлений данных, эта библиотека предоставляет поддержку реализации преобразователей таким образом, чтобы их было легко объединять в цепочки и использовать со потоками.

Для использования этой библиотеки в вашем коде:

import 'dart:convert';

Два часто используемых преобразователя — это экземпляры верхнего уровня JsonCodec и Utf8Codec, имеющие имена json и utf8 соответственно.

JSON

JSON — это простой текстовый формат для представления структурированных объектов и коллекций.

Класс JsonCodec кодирует объекты JSON в строки и декодирует строки в объекты JSON. Кодировщик/декодировщик json преобразует между строками и структурами объектов, такими как списки и карты, используя формат JSON.

Класс json — это реализация по умолчанию класса JsonCodec.

Примеры

var encoded = json.encode([1, 2, { "a": null }]);
var decoded = json.decode('["foo", { "bar": 499 }]');

Для получения дополнительной информации, см. также JsonEncoder и JsonDecoder.

UTF-8

Класс Utf8Codec кодирует строки в единицы кода UTF-8 (байты) и декодирует единицы кода UTF-8 в строки.

Класс utf8 — это реализация по умолчанию класса Utf8Codec.

Пример:

var encoded = utf8.encode('Îñţérñåţîöñåļîžåţîờñ');
var decoded = utf8.decode([
  195, 142, 195, 177, 197, 163, 195, 169, 114, 195, 177, 195, 165, 197,
  163, 195, 174, 195, 182, 195, 177, 195, 165, 196, 188, 195, 174, 197,
  190, 195, 165, 197, 163, 195, 174, 225, 187, 157, 195, 177]);

Для получения дополнительной информации, см. также Utf8Encoder и Utf8Decoder.

ASCII

Класс AsciiCodec кодирует строки как ASCII-коды, хранящиеся в виде байтов, и декодирует ASCII-байты в строки. Не все символы могут быть представлены в ASCII, поэтому не все строки могут быть успешно преобразованы.

Класс ascii — это реализация по умолчанию класса AsciiCodec.

Пример:

var encoded = ascii.encode('This is ASCII!');
var decoded = ascii.decode([0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73,
                            0x20, 0x41, 0x53, 0x43, 0x49, 0x49, 0x21]);

Для получения дополнительной информации, см. также AsciiEncoder и AsciiDecoder.

Latin-1

Класс Latin1Codec кодирует строки в байты ISO Latin-1 (также известный как ISO-8859-1) и декодирует байты Latin-1 в строки. Не все символы могут быть представлены в Latin-1, поэтому не все строки могут быть успешно преобразованы.

Класс latin1 — это реализация по умолчанию класса Latin1Codec.

Пример:

var encoded = latin1.encode('blåbærgrød');
var decoded = latin1.decode([0x62, 0x6c, 0xe5, 0x62, 0xe6,
                             0x72, 0x67, 0x72, 0xf8, 0x64]);

Для получения дополнительной информации, см. также Latin1Encoder и Latin1Decoder.

Base64

Класс Base64Codec кодирует байты, используя стандартный алфавит base64, декодирует используя алфавиты base64 и base64url, не допускает недопустимых символов и требует заполнения.

Класс base64 — это реализация по умолчанию класса Base64Codec.

Пример:

var encoded = base64.encode([0x62, 0x6c, 0xc3, 0xa5, 0x62, 0xc3, 0xa6,
                             0x72, 0x67, 0x72, 0xc3, 0xb8, 0x64]);
var decoded = base64.decode('YmzDpWLDpnJncsO4ZAo=');

Для получения дополнительной информации, см. также Base64Encoder и Base64Decoder.

Преобразователи

Преобразователи часто используются с потоками для преобразования данных, которые поступают через поток по мере их доступности. Следующий код использует два преобразователя. Первый — это декодер UTF-8, который преобразует данные из байтов в UTF-8 по мере чтения из файла. Второй — экземпляр класса LineSplitter, который разделяет данные по границам строк.

const showLineNumbers = true;
var lineNumber = 1;
var stream = File('quotes.txt').openRead();

stream.transform(utf8.decoder)
      .transform(const LineSplitter())
      .forEach((line) {
        if (showLineNumbers) {
          stdout.write('${lineNumber++} ');
        }
        stdout.writeln(line);
      });

См. документацию по классам Codec и Converter для получения информации о создании собственных преобразователей.

HTML Escape

Преобразователь HtmlEscape экранирует символы со специальным значением в HTML. Преобразователь находит символы, имеющие важное значение в исходном коде HTML, и заменяет их соответствующими HTML-сущностями.

Настраиваемые режимы экранирования можно создавать с помощью конструктора HtmlEscapeMode.HtmlEscapeMode.

Пример:

const htmlEscapeMode = HtmlEscapeMode(
  name: 'custom',
  escapeLtGt: true,
  escapeQuot: false,
  escapeApos: false,
  escapeSlash: false,
 );

const HtmlEscape htmlEscape = HtmlEscape(htmlEscapeMode);
String unescaped = 'Text & subject';
String escaped = htmlEscape.convert(unescaped);
print(escaped); // Text & subject

unescaped = '10 > 1 and 1 < 10';
escaped = htmlEscape.convert(unescaped);
print(escaped); // 10 &gt; 1 and 1 &lt; 10

unescaped = "Single-quoted: 'text'";
escaped = htmlEscape.convert(unescaped);
print(escaped); // Single-quoted: 'text'

unescaped = 'Double-quoted: "text"';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Double-quoted: "text"

unescaped = 'Path: /system/';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Path: /system/

Классы

AsciiCodec
Класс AsciiCodec позволяет кодировать строки в ASCII-байты и декодировать ASCII-байты в строки.
AsciiDecoder
Преобразует ASCII-байты в строку.
AsciiEncoder
Преобразует строки, содержащие только ASCII-символы, в байты.
Base64Codec
Кодировщик и декодер base64.
Base64Decoder
Декодер для данных, закодированных в base64.
Base64Encoder
Преобразователь кодирования base64 и base64url.
ByteConversionSink
ByteConversionSink предоставляет интерфейс для преобразователей, чтобы эффективно передавать данные байтов.
ByteConversionSinkBase
Этот класс предоставляет базовый класс для преобразователей, которым необходимо принимать байтовые входные данные.
ChunkedConversionSink<T>
ChunkedConversionSink используется для более эффективной передачи данных между двумя преобразователями во время поблочного преобразования.
ClosableStringSink
ClosableStringSink расширяет интерфейс StringSink, добавив метод close.
Codec<S, T>
Codec кодирует и (если поддерживается) декодирует данные.
Converter<S, T>
Converter преобразует данные из одного представления в другое.
Encoding
Открытый перечисление Encoding.
HtmlEscape
Преобразователь, который экранирует символы со специальным значением в HTML.
HtmlEscapeMode
Режимы экранирования HTML.
JsonCodec
JsonCodec кодирует объекты JSON в строки и декодирует строки в объекты JSON.
JsonDecoder
Этот класс анализирует JSON-строки и создаёт соответствующие объекты.
JsonEncoder
Этот класс преобразует JSON-объекты в строки.
JsonUtf8Encoder
Кодировщик, который кодирует отдельный объект как UTF-8 закодированную JSON-строку.
Latin1Codec
Latin1Codec кодирует строки в байты ISO Latin-1 (также известный как ISO-8859-1) и декодирует байты Latin-1 в строки.
Latin1Decoder
Этот класс преобразует байты Latin-1 (списки беззнаковых 8-битных целых чисел) в строку.
Latin1Encoder
Этот класс преобразует строки, содержащие только символы ISO Latin-1, в байты.
LineSplitter
StreamTransformer, который разделяет строку на отдельные строки.
StringConversionSink
Этот класс предоставляет интерфейс для преобразователей, чтобы эффективно передавать данные String.
StringConversionSinkBase
Этот класс предоставляет базовый класс для преобразователей, которым необходимо принимать строковые входные данные.
StringConversionSinkMixin
Этот класс предоставляет миксин для преобразователей, которым необходимо принимать строковые входные данные.
Utf8Codec
Utf8Codec кодирует строки в единицы кода UTF-8 (байты) и декодирует единицы кода UTF-8 в строки.
Utf8Decoder
Этот класс преобразует единицы кода UTF-8 (списки беззнаковых 8-битных целых чисел) в строку.
Utf8Encoder
Этот класс преобразует строки в их единицы кода UTF-8 (список беззнаковых 8-битных целых чисел).

Константы

ascii → const AsciiCodec
Экземпляр реализации по умолчанию AsciiCodec.
AsciiCodec()
base64 → const Base64Codec
Кодировщик и декодировщик base64.
Base64Codec()
base64Url → const Base64Codec
Кодировщик и декодировщик base64url.
Base64Codec.urlSafe()
htmlEscape → const HtmlEscape
Преобразователь, который преобразует символы в HTML-сущности.
HtmlEscape()
json → const JsonCodec
Экземпляр реализации по умолчанию JsonCodec.
JsonCodec()
latin1 → const Latin1Codec
Экземпляр реализации по умолчанию Latin1Codec.
Latin1Codec()
unicodeBomCharacterRune → const int
Символ Unicode Byte Order Marker (BOM) U+FEFF.
0xFEFF
unicodeReplacementCharacterRune → const int
Символ Unicode Replacement U+FFFD (�).
0xFFFD
utf8 → const Utf8Codec
Экземпляр реализации по умолчанию Utf8Codec.
Utf8Codec()

Функции

base64Decode(String source) → Uint8List
Декодирует закодированные в base64 или base64url байты.
base64Encode(List<int> bytes) → String
Кодирует bytes с помощью кодирования base64.
base64UrlEncode(List<int> bytes) → String
Кодирует bytes с помощью кодирования base64url.
jsonDecode(String source, {Object? reviver(Object? key, Object? value)?}) → dynamic
Парсит строку и возвращает результирующий объект Json.
jsonEncode(Object? object, {Object? toEncodable(Object? nonEncodable)?}) → String
Преобразует object в строку JSON.

Исключения/ошибки

JsonCyclicError
Сообщает, что объект не может быть преобразован в строку из-за циклических ссылок.
JsonUnsupportedObjectError
Ошибка, выброшенная сериализацией JSON, если объект не может быть сериализован.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-convert/dart-convert-library.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API