JsonCodec 构造函数
)
创建一个具有指定解析器和编码函数的 JsonCodec
。
在解码期间调用 reviver
函数。对于每个解析的对象或列表属性,它都会被调用一次。参数 key
是列表属性的整数列表索引,对象的字符串映射键,或者是最终结果的 null
。
如果省略 reviver
,它将默认返回 value
参数。
toEncodable
函数在编码期间使用。它用于那些不能直接编码为字符串的值(不是数字、布尔值、字符串、null、列表或具有字符串键的映射的值)。此函数必须返回可直接编码的对象。返回列表的元素和返回映射的值不需要是可直接编码的,如果不是,toEncodable
也将用于它们。请注意,通过这种方式,可能会造成无限递归回退,实际上通过重复调用 toEncodable
创建了无限数据结构。
如果省略 toEncodable
,它将默认返回一个函数,该函数通过调用不可编码对象的 .toJson()
方法来返回结果。
const JsonCodec(
{Object? reviver(Object? key, Object? value)?,
Object? toEncodable(dynamic object)?})
: _reviver = reviver,
_toEncodable = toEncodable;