JsonCodec 构造函数

const JsonCodec(
  1. {Object? reviver(
    1. Object? key,
    2. Object? value
    )?,
  2. , Object? toEncodable(
    1. dynamic object
    )?}
)

)

创建一个具有指定解析器和编码函数的 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;