此类解析 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
- 此对象的哈希码。no setterinherited
- runtimeType → Type
- 对象的运行时类型表示。no setterinherited
方法
-
bind(
Stream< String> stream) → Stream<Object?> - 转换提供的
stream
。override -
cast<
RS, RT> () → Converter< RS, RT> - 提供此流转换器的
Converter<RS, RT>
视图。inherited -
convert(
String input) → dynamic - 将给定的 JSON 字符串
input
转换为其对应的对象。override -
fuse<
TT> (Converter< Object?, TT> other) → Converter<String, TT> - 将
this
与other
熔接。inherited -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被触发。inherited
-
startChunkedConversion(
Sink< Object?> sink) → StringConversionSink - 从分块 JSON 字符串开始转换为对应对象的过程。override
-
toString(
) → String - 该对象的字符串表示形式。inherited
操作符
-
operator ==(
Object other) → bool - 等号操作符。inherited