[英]How to create JSON format from Realm “Results” using Object Mapper
我嘗試使用Object Mapper從Realm Results創建JSON格式。 因此,我創建了兩個通用方法來做到這一點。 Fisrt方法創建數組形式的Results
,如下所示:
var allRealmData: Results<Project>? // in this variable I save all Project Objects first
func makeAnArrayFromResults<T>(object: T.Type) -> [T]?{
var array = [T]()
guard let mainArray = allRealmData else { return nil }
for i in mainArray {
if let object = i as? T {
array.append(object)
}
}
return array
}
那么我想使用Object Mapper
將此數組更改為JSON Object,但是當我嘗試執行此操作時,我收到一個錯誤,並且不知道如何解決它。 我的第二種方法如下所示:
func createJSON<T: Object>(object: T.Type){
let array = makeAnArrayFromResults(object)
let json = Mapper().toJSONString(array!, prettyPrint: true) //here error
}
錯誤信息:無法使用類型為“([T],prettyPrint:Bool)”的參數列表調用“ toJSONString”。
您有任何建議如何從Realm中的Result
創建JSON嗎?
首先, makeAnArrayFromResults<T>
實際上只是map
:
let someRealmResults: Results<Project>?
...
let array = someRealmResults?.map { $0 } // => [Project]?
就Object Mapper集成而言,似乎您沒有定義滿足[Person]
的第一個參數類型約束的toJSONString
函數。
在Object Mapper的問題跟蹤器中有很多關於與Realm互操作性的討論,您可能會發現它有用: https : //github.com/Hearst-DD/ObjectMapper/issues/475
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.