我正在尝试将 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/