首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift map Algolia hit to Model

Swift map Algolia hit to Model
EN

Stack Overflow用户
提问于 2020-09-04 06:45:52
回答 1查看 138关注 0票数 0

我需要将JSON对象从Algolia映射到一个Model。

这是我的ViewModel:

代码语言:javascript
复制
import Foundation
import AlgoliaSearchClient

class AlgoliaViewModel: ObservableObject {
    
    @Published var idList: [MySearchModel] = []
    
    func search(text: String, index: String) {
        
        let client = SearchClient(appID: "XXX", apiKey: "XXX")
        let index = client.index(withName: IndexName(rawValue: index))
        let query = Query(text)
        
        index.search(query: query) { result in
            
            if case .success(let response) = result {
                print("Response: \(response)")
                
                do {
                    let hits: Array = response.hits
                    
                    DispatchQueue.main.async {
                        self.idList = hits.map({
                            MySearchModel(searchValue: $0.objectID.rawValue)
                            })
                        print(self.idList)
                    }
                }
                catch {
                    print("JSONSerialization error:", error)
                }
            }
        }
    }
}

目前,我只有一个objectID为searchValue的模型。

如何访问对象的所有其他属性并将其映射到模型?

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 01:41:52

代码语言:javascript
复制
import Foundation
import AlgoliaSearchClient

class AlgoliaViewModel: ObservableObject {

@Published var list: [MySearchModel] = []

func search(text: String, index: String) {
    
    let client = SearchClient(appID: "XXX", apiKey: "XXX")
    let index = client.index(withName: IndexName(rawValue: index))
    let query = Query(text)
    
    index.search(query: query) { result in
        
        if case .success(let response) = result {
            print("Response: \(response)")
            
            do {
                let hits: Array = response.hits
                
                DispatchQueue.main.async {
                    self.list = hits.map({MySearchModel.init})
                    print(self.list)
                }
            }
            catch {
                print("JSONSerialization error:", error)
            }
        }
     }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63732602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档