繁体   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