该类解析 JSON 字符串并构建相应的对象。
JSON 输入必须是单个 JSON 值的 JSON 编码,该值可以是一个包含其他值的列表或映射。
如果输入不是有效的 JSON 文本,则抛出 FormatException。
示例
const JsonDecoder decoder = JsonDecoder();
const String jsonString = '''
{
"data": [{"text": "foo", "value": 1 },
{"text": "bar", "value": 2 }],
"text": "Dart"
}
''';
final Map<String, dynamic> object = decoder.convert(jsonString);
final item = object['data'][0];
print(item['text']); // foo
print(item['value']); // 1
print(object['text']); // Dart
当作为 StreamTransformer 使用时,输入流可能会发出多个字符串。所有这些字符串的连接必须是一个有效的 JSON 编码的单个 JSON 值。
构造函数
- JsonDecoder([Object? reviver(Object? key, Object? value)?])
- 构造一个新的 JsonDecoder。const
属性
- hashCode → int
- 该对象的哈希码。无设置器继承
- runtimeType → Type
- 该对象运行时类型的表示。无设置器继承
方法
-
bind(
Stream< String> stream) → Stream<Object?> - 转换提供的
stream
。override -
cast<
RS, RT> () → Converter< RS, RT> - 提供对流的转换器的
Converter<RS, RT>
视图。继承 -
convert(
String input) → dynamic - 将给定的 JSON 字符串
input
转换为其相应的对象。override -
fuse<
TT> (Converter< Object?, TT> other) → Converter<String, TT> - 将当前对象与
other
融合。继承 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的属性或方法时被调用。继承
-
startChunkedConversion(
Sink< Object?> sink) → StringConversionSink - 开始从分块JSON字符串转换为相应的对象。override
-
toString(
) → String - 此对象的字符串表示形式。继承
运算符
-
operator ==(
Object other) → bool - 等号运算符。继承