簡體   English   中英

如何使用對象映射器從領域“結果”創建JSON格式

[英]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.

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