json - 如何使用 AlamofireObjectMapper 将 JSON 字典添加到 Realm

标签 json swift2 realm alamofire

我正在尝试将 JSON 对象添加到 Realm,但一直抛出此错误

Could not cast value of type '__NSCFDictionary' (0x10c52f178) to 'NSArray' (0x10c52eb88).

行,用户的结果为! [任何对象] {。这是我的 JSON 响应:

{
  "name" : "Jonny Walker",
  "api_token" : "qwertyuiop1234567890",
  "profile_picture" : "http:default_profile_picture.jpg",
  "id" : 10,
  "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fd978a9c9196988fbd9a909c9491d39e9290" rel="noreferrer noopener nofollow">[email protected]</a>"
  "username" : "jonny"
}

这是我的代码:

import Foundation
import Alamofire
import SwiftyJSON
import RealmSwift
import ObjectMapper
import AlamofireObjectMapper


class Login {

init(userName: String, passWord: String) {
    Data.sharedInstance.userName = userName
    Data.sharedInstance.passWord = passWord
}

// call this method to login
func getRequest() {

let parameters = [
        "username" : Data.sharedInstance.userName!,
        "password" : Data.sharedInstance.passWord!,
    ]

Alamofire.request(.POST, Data.todoEndpoint, parameters: parameters)
        .responseJSON { response in


if let result = response.result.value
{
   let value = JSON(result)
   do{        
     print(Realm.Configuration.defaultConfiguration.fileURL!)
     let realm = try! Realm()
     for user in result as! [AnyObject] {
         try realm.write{
            realm.add(user as! Object, update: true)
         }
     }

   }

   catch let err as NSError {
      print("Error with realm: " + err.localizedDescription)
   }

}
else
{
  print("JSON data is nil.")
}

}

}

}

最佳答案

您似乎只收到一个用户,而不是很多。在这种情况下,您应该尝试解析对数组的响应,如果失败,请尝试将其映射到单个用户对象...

不要使用“as!”。用于?”相反并测试为零。

示例:

let dict = response as? Dictionary<String, AnyObject>

if dict != nil {
    // Parse a single User
} else {
    let arr = response as? [AnyObject]
}

关于json - 如何使用 AlamofireObjectMapper 将 JSON 字典添加到 Realm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37383543/

相关文章:

javascript - 如何从 javascript 中的 json 字符串解析出未转义的单引号 ' Google Translate

swift - 如何在 swift 2.0 中将日期选择器中的当前日期限制为 future 15 天

python - 为什么 `json.dump()` 不以 `\n` 结束该行?

jquery - 无法解析来自 jquery Ajax 调用的 JSON 响应

xml - Mule:是否有将 XML 转换为 JSON 的简单方法

ios - Swift:无法将类型 'String' 的值转换为预期的参数类型 '@noescape (AnyObject) throws -> Bool'

swift - 如何创建一个 UnsafeMutablePointer<UnsafeMutablePointer<UnsafeMutablePointer<Int8>>>

android - Realm:使用 Clean-Architecture 和 RxJava2

android - Realm - results.remove() 在 Realm 中被弃用