JsonCodec 构造函数

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

创建一个带有给定恢复函数和编码函数的 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;