如何在swift 4中手动解码json数据
如何通过按键手动解码[相册]和[图像]? 我试过了,但不行。 我不知道错误是什么? 非常感谢。 我的Json 第二个blok如何在swift 4中手动解码json数据,json,swift,xcode,parsing,codable,Json,Swift,Xcode,Parsing,Codable,如何通过按键手动解码[相册]和[图像]? 我试过了,但不行。 我不知道错误是什么? 非常感谢。 我的Json 第二个blok struct Album { let id: Int let title: String var images: [Image] enum AlbumKeys: String, CodingKey { case id = "id" case title = "title" case imag
struct Album {
let id: Int
let title: String
var images: [Image]
enum AlbumKeys: String, CodingKey {
case id = "id"
case title = "title"
case images = "images"
}
}
struct Image: Codable {
let id: Int
let url: String
enum CCodingKeys: String, CodingKey {
case id = "id"
case url = "url"
}
}
你得到了错误
类型“User”不符合协议“Decodable”
因为所有结构都必须采用(De)codable
只要稍作修改,结构就可以工作
struct ProfileElement: Decodable {
let user: User
let postImage: String
let postLikes: Int
let postTags: String
}
struct User: Decodable {
let name, surname: String
let profilePic: String
let albums: [Album]
}
struct Album : Decodable {
let id: Int
let title: String
var images: [Image]
}
struct Image: Decodable {
let id: Int
let url: String
}
然后解码
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase // This line gets rid of all CodingKeys
let result = try decoder.decode([ProfileElement].self, from: data)
您可以使用
for item in result {
for album in item.user.albums {
for image in album.images {
print(image)
}
}
}
相册不符合Codable?以及图像中“CCodingKeys”的拼写错误。和“相册钥匙”。
for item in result {
for album in item.user.albums {
for image in album.images {
print(image)
}
}
}