@NullCodable

@NullCodable 是一个属性包装器,在使用 JSONEncoder 编码时,会将 nil 可选值编码为 null

默认情况下,JSONEncoder 会省略值为 nil 的可选属性 - 这意味着

struct Test: Codable {
  var name: String? = nil
}

将被编码为: {}

如果由于某种原因,您希望值为 nil 的可选属性在 JSON 中被编码为 null,那么将这些属性标记为 @NullCodable 即可实现。

例如,像这样添加 @NullCodable

  struct Test: Codable {
    @NullCodable var name: String? = nil
  }

将被编码为: {\"name\": null}