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