AnyCodable
此库用于简化 [String: Any]
和 [Any] 的编码和解码
要求
- iOS 8.0 或更高版本
- Xcode 10.0 或更高版本
安装
您可以使用 AnyCodable 来使用您的项目
- 使用 CocoaPods
CocoaPods 安装
pod 'AnyCodable', '1.0'
构建项目
此时,您的工作区应该可以无错误地构建。如果遇到问题,请提交 Issue,社区可以帮您解决问题。
如何使用
import AnyCodable
struct MockCodableObject: Codable {
var dict: [String: Any]
var array: [Any]
var optionalDict: [String: Any]?
var optionalArray: [Any]?
enum CodingKeys: String, CodingKey {
case dict
case array
case optionalDict
case optionalArray
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
dict = try values.decode([String: Any].self, forKey: .dict)
array = try values.decode([Any].self, forKey: .array)
optionalDict = try values.decodeIfPresent([String: Any].self, forKey: .optionalDict)
optionalArray = try values.decodeIfPresent([Any].self, forKey: .optionalArray)
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(dict, forKey: .dict)
try container.encode(array, forKey: .array)
try container.encodeIfPresent(optionalDict, forKey: .optionalDict)
try container.encodeIfPresent(optionalArray, forKey: .optionalArray)
}
}
作者
通讯
- 如果你发现了错误,请打开一个问题。
- 如果你有特性请求,请打开一个问题。
- 如果你想贡献力量,请提交一个pull request。
许可证
所有源代码均根据MIT许可证授权。