Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用AlamoFileObjectMapper向领域添加JSON字典_Json_Swift2_Realm_Alamofire - Fatal编程技术网

如何使用AlamoFileObjectMapper向领域添加JSON字典

如何使用AlamoFileObjectMapper向领域添加JSON字典,json,swift2,realm,alamofire,Json,Swift2,Realm,Alamofire,我试图将我的JSON对象添加到领域中,但我一直被抛出此错误 无法将类型为“\uu NSCFDictionary”(0x10c52f178)的值强制转换为“NSArray”(0x10c52eb88) 在第行为结果中的用户显示为![AnyObject]{。这是我的JSON响应: { "name" : "Jonny Walker", "api_token" : "qwertyuiop1234567890", "profile_picture" : "http:default_profile

我试图将我的JSON对象添加到领域中,但我一直被抛出此错误

无法将类型为“\uu NSCFDictionary”(0x10c52f178)的值强制转换为“NSArray”(0x10c52eb88)

在第
行为结果中的用户显示为![AnyObject]{
。这是我的JSON响应:

{
  "name" : "Jonny Walker",
  "api_token" : "qwertyuiop1234567890",
  "profile_picture" : "http:default_profile_picture.jpg",
  "id" : 10,
  "email" : "jwalker@gmail.com"
  "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!”。而是使用“as?”并测试为零

例如:

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

if dict != nil {
    // Parse a single User
} else {
    let arr = response as? [AnyObject]
}
让dict=作为字典响应
如果dict!=nil{
//解析单个用户
}否则{
设arr=响应为?[AnyObject]
}

如何将其映射到单个用户对象?我不知道。我认为您可以使用
let user=user()
创建一个新用户,并从字典中设置属性。例如:user.name=dict[“name”]as?String