如何使用 AlamofireObjectMapper 将 JSON 字典添加到领域
Posted
技术标签:
【中文标题】如何使用 AlamofireObjectMapper 将 JSON 字典添加到领域【英文标题】:How to add a JSON dictionary to realm with AlamofireObjectMapper 【发布时间】:2016-05-23 06:01:29 【问题描述】:我正在尝试将我的 JSON 对象添加到 Realm,但我一直被抛出此错误
无法将“__NSCFDictionary”(0x10c52f178) 类型的值转换为“NSArray”(0x10c52eb88)。
在for user in result as! [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.")
【问题讨论】:
【参考方案1】:您似乎只收到 一个 用户,而不是很多。在这种情况下,您应该尝试解析对数组的响应,如果失败尝试将其映射到单个用户对象...
不要使用“as!”。用于?”而是测试 nil。
例子:
let dict = response as? Dictionary<String, AnyObject>
if dict != nil
// Parse a single User
else
let arr = response as? [AnyObject]
【讨论】:
如何将其映射到单个用户对象? 我不知道。我认为您可以使用let user = User()
创建一个新用户并从字典中设置您的属性。例如:user.name = dict["name"] as?字符串以上是关于如何使用 AlamofireObjectMapper 将 JSON 字典添加到领域的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]
如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?