ios - JSON 处理错误 : Output not fetched correctly

标签 ios json foreach alamofire swifty-json

我有以下 JSON 响应。目前,我的 POST 请求将在我的控制台输出中提供“用户名”。但是,当我运行该应用程序时,我的 alertView(在 handlingAuthentication 中找到,提供了链接)返回 nil。

{
  "username" : [
  "The username field is required."
  ],
  "password" : [
  "The password field is required."
  ]
}

我该怎么办:

  • 获取字符串“The username field is required”
  • 在 handlingAuthentication 方法中将字符串传递给我的 alertview
  • 从 JSON 响应中获取多个字符串(例如,在 AlertView 中打印:“密码字段是必需的。下一行用户名字段是必需的。”)

这是我的 POST 请求

import Foundation
import Alamofire
import SwiftyJSON
import RealmSwift

class Login {

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

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

    Alamofire.request(.POST, Data.todoEndpoint, parameters: ["username": Data.sharedInstance.userName!, "password": Data.sharedInstance.passWord!])
        .responseJSON { response in

            var errorFound = Bool()
            var errorMessage = String()

            if let result = response.result.value
            {
                let value = JSON(result)
                var outcome = String()

                //No username
                if value["password"] == nil && value["message"] == nil && value["name"] == nil
                {
                    errorFound = true
                    for output in value {
                        errorMessage = output.0
                        print(errorMessage)
                    }

                }

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

            let errorDict = ["error": errorFound, "message": errorMessage]
        NSNotificationCenter.defaultCenter().postNotificationName("errorPresent", object:errorDict)


    }

}


}

显示警报消息的代码在这里 https://codeshare.io/VilQl

最佳答案

你可以这样做,

   var dict: [NSObject : AnyObject] = [NSObject : AnyObject]() // your response here which you have print in question
    var arr: [AnyObject] = (dict["username"] as! [AnyObject])
    let str: String = arr[0] as! String

然后将这个字符串传递给alertview的消息。

希望这会有所帮助:)

关于ios - JSON 处理错误 : Output not fetched correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248650/

相关文章:

ios - iOS项目初始化项目中需要的所有UIViewController和UIView是不是一个好习惯?

javascript - lib 属性是否覆盖 tsconfig.json 中的目标属性

sql-server - OPENJSON 扩展了其他列

c# - 如何继续 foreach 循环

php - 在 PHP 中将 JSON 数组导出为 CSV

r - 提高替换多个字符串的性能

ios - 使用我自己的服务器验证 iOS 应用内购买

objective-c - 使用 Instruments 测试 iOS 应用程序开发的最佳实践

iOS 以编程方式为表格 View 单元格内容创建 NSLayoutConstraint

javascript - 不和谐 : Using a command to get Data from Array