@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}。