到目前为止,没有模型类,就直接从数组中解析JSON数据。请建议使用模型类或直接解析JSON数据来解析JSON的有效方法。
答案 0 :(得分:1)
如果您使用的是Swift 4,那么Apple有一些新的类和协议,我们可以使用 JSONDecoder 和可解码 >用于将 JSON 数据解码为模型对象,以及 JSONEncoder 和 Encodable 用于将模型对象编码为JSON数据。
答案 1 :(得分:0)
根据Apple开发者documentation
Swift标准库定义了一种标准化的数据处理方法 编码和解码。您可以通过实施 您的自定义类型上的可编码和可解码协议。采用这些 协议允许实现编码器和解码器协议 获取您的数据并与外部进行编码或解码 表示形式,例如JSON或属性列表。
对于json解码,您可以使用Struct和实现Decodable协议的类。以下是开发者网站上的简单示例
struct Landmark: Decodable {
var name: String
var foundingYear: Int
}
现在您可以像这样从JSON数据创建Landmark结构
do {
let landmark = try JSONDecoder().decode(Landmark.self, from: data)
} catch {
print(error.localizedDescription)
}
除了可编码协议之外,还有许多第三方库可用,例如ObjectMapper,SwiftyJSON等,但是建议的方法是在尝试第三方解决方案之前先尝试使用Codable
协议。