【问题标题】:How to create JSON format from Realm "Results" using Object Mapper如何使用对象映射器从领域“结果”创建 JSON 格式
【发布时间】:2016-08-04 18:21:15
【问题描述】:

我尝试使用 Object Mapper 从 Realm Results 创建 JSON 格式。所以,我创建了两个通用方法来做到这一点。第一种方法创建数组形式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 对象,但是当我尝试这样做时,我收到一个错误并且不知道如何解决它。我的第二种方法是这样的:

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 吗?

【问题讨论】:

    标签: json swift realm objectmapper


    【解决方案1】:

    首先,makeAnArrayFromResults&lt;T&gt; 真的只是map

    let someRealmResults: Results<Project>?
    ...
    let array = someRealmResults?.map { $0 } // => [Project]?
    

    就对象映射器集成而言,您似乎没有定义满足[Person] 的第一个参数类型约束的toJSONString 函数。

    Object Mapper 的问题跟踪器中有很多关于与 Realm 互操作性的讨论,您可能会发现它们很有用:https://github.com/Hearst-DD/ObjectMapper/issues/475

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      相关资源
      最近更新 更多