Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 4从结构中获取数据_Swift_Structure_Extract - Fatal编程技术网

Swift 4从结构中获取数据

Swift 4从结构中获取数据,swift,structure,extract,Swift,Structure,Extract,我有一个结构(下面的代码),我把JSON值放在那里。如何从我的结构中获取名称:cafe的图像:URL 例如: 名称:“咖啡馆”图片:“url\u链接” 名称:“栏”图像:“url\u链接” 名称:“寿司”图片:“url\u链接” 我的结构 struct Root: Codable { let data: [InnerItem] } struct InnerItem:Codable { let id: Int? let image: String? let

我有一个结构(下面的代码),我把JSON值放在那里。如何从我的结构中获取名称:cafe图像:URL

例如:

  • 名称:“咖啡馆”图片:“url\u链接”
  • 名称:“栏”图像:“url\u链接”
  • 名称:“寿司”图片:“url\u链接”
我的结构

struct Root: Codable {
    let  data: [InnerItem]
}
struct InnerItem:Codable {
    let  id: Int?
    let  image: String?
    let  name: String?

    private enum CodingKeys : String, CodingKey {
        case id = "id", image = "image", name = "name"
    }
}
你可以试试

do {
      let decoder = try JSONDecoder().decode(Root.self, from: response.data!)
      let innerCafe = decoder.data.first(where: { $0.name == "cafe" })   
  }
  catch {
      print(error)
  }

仅供参考-如果所有键都与属性名匹配,则无需定义
CodingKeys
。并且–正如您在中所述–将结构成员声明为非可选(无问号)。