加载一个没有名称的数组(JSON)(Swift 5)



我正试图通过swift中的HTTP get方法提取JSON,该方法看起来如下所示:

[{quot;名字":"约翰",年龄:"十五岁"},{quot;名字>:"苏","年龄":"十六岁"}]

我的目标是创建一个函数,该函数可以提取数据并将其放入各个单元格中。我唯一的问题是如何格式化结构,因为数组没有名称。

这就是我的结构:

struct SearchResponse: Codable {
let name: String?
let age: String?
}

这就是我(试图(收集数据的方式:

guard let data = data else { return }
do {

let obj: SearchResponse = try JSONDecoder().decode(SearchResponse.self, from: data)

let searchObj = SearchObject(age: obj.age ?? "", name: obj.name ?? "")



self.search_object = searchObj ?? []

区段的行数为:

return search_object.count

当我运行代码时,单元格只是返回为空白。

您的JSON是SearchResponses的数组,因此您必须将其解码为SearchResponses:的数组

guard let data = data else { return }
do {
let objects = try JSONDecoder().decode([SearchResponse].self, from: data)
let searchObjects = objects.map {
SearchObject(age: $0.age ?? "", name: $0.name ?? "")
}
self.search_object = searchObjects
} catch {
print(error)
}

或者只是使SearchObject本身符合Codable,并完全消除对SearchResponse的需要:

struct SearchObject: Codable {
let age: String?
let name: String?
}
[...]
guard let data = data else { return }
do {
self.search_object = try JSONDecoder().decode([SearchObject].self, from: data)
} catch {
print(error)
}

最新更新