斯威夫特地图阿尔戈利亚命中模型

问题描述

我需要将JSON对象从Algolia映射到模型。

这是我的ViewModel:

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。

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

解决方法

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)
            }
        }
     }
  }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...