Помоги с json swift в ios

Привет Всем

Я стараюсь соглашаться на стоимость Result

{"Result":{"CODIGO":"Error","DESCRIPCION":"true","ID":"23"}}

Controller, пока только я соглашаюсь на Result.

class FirstViewController: UIViewController {

@IBOutlet weak var txtCarta: UITextField!
@IBOutlet weak var botonEnviar: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()



}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

   @IBAction func Mostrar(sender: UIButton) {

    let envio = txtCarta.text!
    let body = "codigo="+envio

    let myUrl = NSURL(string: "AquiVaMiUrl");
    let request = NSMutableURLRequest(URL:myUrl!);
    request.HTTPMethod = "POST";

    request.HTTPBody = body.dataUsingEncoding(NSUTF8StringEncoding);

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {


        data, response, error in

        if error != nil
        {
            print("error=\(error)")
            return
        }


        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print(responseString!)


        do {
            let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)

            // aqui solo accedo a Result pero me falta obtener sus valores.
          let blogs = json["Result"]!
           print(blogs!)


        } catch {
            print("error serializing JSON: \(error)")
        }


    }

    task.resume()


}

}

Спасибо.

2
задан 30.04.2016, 20:38
4 ответа

Ты можешь делать следующее, чтобы убеждаться в том, что все keys/values существуют:

if let blogs = json["Result"] {

    if let codigo =  blogs?["CODIGO"] {
        print(codigo)
    }

    if let desc =  blogs?["DESCRIPCION"] {
        print(desc)
    }

    if let id =  blogs?["ID"] {
        print(id)
    }

}
4
ответ дан 24.11.2019, 14:30

Первое, что ты должен делать, состоит в том, чтобы обращать json результата в словарь:

let blogs = json["Result"] as! NSDictionary

и ты можешь подбирать данные используя:

let id = blogs["id"]
1
ответ дан 24.11.2019, 14:30

Ты можешь использовать ее librerГ - в swifty json, я оставляю тебе соединение: https://github.com/SwiftyJSON/SwiftyJSON

и пример использования:

if let dataFromString = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
    let json = JSON(data: dataFromString)
let name = json["name"].stringValue
}

Надеялся, что он подает тебе

1
ответ дан 24.11.2019, 14:30

Если ты используешь JSON, доказательство использовать книжный магазин Alamofire. Я использую ее и упрости много вещи.

Я оставляю тебе ссылку: https://github.com/Alamofire/Alamofire

Я показываю тебе твой код, если ты используешь этот книжный магазин:

import Alamofire

class FirstViewController: UIViewController {

    @IBOutlet weak var txtCarta: UITextField!
    @IBOutlet weak var botonEnviar: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func Mostrar(sender: UIButton) {

        let envio = txtCarta.text!
        //let body = "codigo="+envio
        let parametros = ["codigo": envio]

        let myUrl = NSURL(string: "AquiVaMiUrl")

        Alamofire.request(.POST, myUrl, parameters: parametros).responseJSON { response in
            if let respuesta = response.data {
                json = JSON(data: respuesta)

                let blogs = json["Result"]!
                print(blogs!)
            }
        }
    }
}
1
ответ дан 24.11.2019, 14:30