採択 原稿(2ページ)

CodableでJSONのNullを出力するためのTips iOSDC Japan 2021

6
hirotakan

Swiftでは、JSONのNullを許容するキーを、Optionalで表現すると思います。
また、現在はJSONのパースにおいて Codable を利用することが多いと思います。
標準のCodableでは Optional.none をエンコードすると、キーを失ってしまいます。
状況によってはキーを失わず、 JSONのnullを出力したいケースもあるのではないでしょうか。
必要な型ごとに encode メソッドを実装することで実現できますが少し面倒です。
再利用できる手段を取りたいですが、エンコード&デコードを可能にしようと思うと一工夫必要になります。
本稿では、 Property Wrapper と KeyedDecodingContainer を利用した再利用可能な方法をご紹介します。