Не отображать выбранные данные JSON - PullRequest
0 голосов
/ 22 декабря 2018

Очень плохо знаком с JSON.Удалось получить данные JSON из заданного API, но не смог отобразить выбранные данные.Видимо, разбор JSON не работает?

import UIKit
import Alamofire
import SwiftyJSON

class ViewController: UIViewController {
    let baseURL = "https://free.currencyconverterapi.com/api/v6/convert?q=MYR_JPY"

    @IBOutlet weak var amountToConvert: UITextField!
    @IBOutlet weak var displayMYRtoJPY: UILabel!
    @IBOutlet weak var rateLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        GetcurrencyPair(url: baseURL)
    }

    func GetcurrencyPair(url: String) {
        Alamofire.request(baseURL, method: .get)
            .responseJSON { response in
                if response.result.isSuccess {
                    print("Sucess! Got the Currency Pair")
                    let currencyPairJSON : JSON = JSON(response.result.value!)

                    print(currencyPairJSON)

                    self.updateRateTicker(json: currencyPairJSON)
                } else {
                    print("Error: \(String(describing: response.result.error))")
                    self.rateLabel.text = "Connection Issues"
                }
        }
    }

    func updateRateTicker(json : JSON) {
        if let tempResult = json["results"].int {

            print(tempResult)
            rateLabel.text = String(tempResult)
        }
    }
}

1 Ответ

0 голосов
/ 22 декабря 2018

Чтение JSON.Кроме значения для ключа count в записи вообще нет значения int.

Возможно, вы ищете значение для ключа val, которое находится в словаре MYR_JPY и являетсяDouble

Попробуйте

func updateRateTicker(json : JSON) {
    if let tempResult = json["results"]["MYR_JPY"]["val"].double {

        DispatchQueue.main.async {
            print(tempResult)
            rateLabel.text = String(tempResult)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...