我正在实现我自己的 JSON 编码器/解码器,即 Swift 的Encoder
&Decoder
协议。
问题是,我只想覆盖JSONEncoder
Foundation 中已经提供的一小部分功能。JSONEncoder
,与它的名字相反,它不是真正的 Swift Encoder
。相反,它包装了一个 fileprivate 类_JSONEncoder
,它实现了所有必需的Encoder
功能。
要编写我自己的定制编码器,我可以:
- 从头开始编写我自己的 JSON 编码器。
_JSONEncoder
从源本身复制粘贴和修改。
两者都不是特别吸引人的解决方案。编写自己的编码器是一项艰巨而艰巨的任务,我毫不怀疑它会充满错误。_JSONEncoder
另一方面,每次对原始源文件进行更新时,复制粘贴迫使我笨拙地检查和移植修复。
我宁愿只_JSONEncoder
暴露并包装它的Encoder
相关函数,同时根据需要注入我自己的代码。