如何通过按键手动解码【相册】和【图片】?我试过了,但我不能。不知道是什么错误?谢谢 !我的 Json http://appscorporation.ga/api-user/test
struct ProfileElement: Codable {
let user: User
let postImage: String
let postLikes: Int
let postTags: String
enum CodingKeys: String, CodingKey {
case user
case postImage = "post_image"
case postLikes = "post_likes"
case postTags = "post_tags"
}
}
struct User: Codable {
let name, surname: String
let profilePic: String
let albums: [Album]
enum CodingKeys: String, CodingKey {
case name, surname
case profilePic = "profile_pic"
case albums
}
}
第二块
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"
}
}
你得到错误
“用户”类型不符合“可解码”协议
因为所有结构都必须采用(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)
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句