簡體   English   中英

Swift Decodable無法訪問數組中的嵌套數據

[英]Swift decodable can't access nested data in array

我收到一個嚴重錯誤,陳述以下內容。 我已經嘗試了所有方法,但似乎無法訪問Movie結構,因為它說父“類型”沒有名為“數據”的成員,即使它顯然也是如此。

“類型'[Type?]'的值沒有成員'data'”

模型

struct SearchData: Decodable  {
     let data: [Type?]
}

struct Type: Decodable  {
     let data: [Movie?]
}

struct Movie: Decodable {
     let title: String?
}

CONTROLLER

    fileprivate var searchResults = [Movie?]()

    func fetchTitles()  {
    let urlString = "https://www.what-song.com/api/search?limit=10&field=america"
    guard let url = URL(string: urlString) else { return }

    URLSession.shared.dataTask(with: url) { (data, response, err) in
        // if error occurs
        if let err = err    {
            print("Failed to fetch titles", err)
            return
        }
        // if success

        guard let data = data else { return }

        do {
            let searchResult =  try JSONDecoder().decode(SearchData.self, from: data)

            self.searchResults = searchResult.data.data

            print(searchResult)

        }   catch   {
            print("Failed to decode JSON:", error)
        }
    }.resume()
}

嘗試這個 :

var movieTitles = [String]()

for type in searchResult.data {
   for movie in type.data {
       guard let title = movie.title else { return }
       print(title)
       movieTitles.append(title)
   }
}

我想你在這里犯了一個小錯誤

searchResult.data

將返回一個數組

類型

您還需要解析該數組,像這樣

            searchResults = (searchResult.data[0]?.data)!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM