JsonDecoderfinal

此类解析 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>
thisother 熔接。
inherited
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被触发。
inherited
startChunkedConversion(Sink<Object?> sink) StringConversionSink
从分块 JSON 字符串开始转换为对应对象的过程。
override
toString() String
该对象的字符串表示形式。
inherited

操作符

operator ==(Object other) bool
等号操作符。
inherited