首页 > 解决方案 > 在 SWIFT 4 中成功连接后未找到 JSON 解析数据

问题描述

我是新来的。试图从页面解析数据。由于某种原因,连接建立成功,但数据未通过。请帮我解决问题。这是代码。

import UIKit
import Alamofire
import SwiftyJSON

class ViewController: UIViewController {

    @IBOutlet weak var termsLabel: UILabel!

    let baseURL = "http://grandthecompany.com/admin/terms_api.php"

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        getTermsData(url: baseURL)

    }

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



    //MARK: - Networking
    /***************************************************************/

   func getTermsData(url: String) {

        Alamofire.request(url, method: .get)
            .responseJSON { response in
                if response.result.isSuccess {

                    print("Sucess! Got the Terms data")
                    let termsJSON : JSON = JSON(response.result.value!)

                    self.updateTermsData(json: termsJSON)

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

    }


    //MARK: - JSON Parsing
    /***************************************************************/

    func updateTermsData(json : JSON) {

        if let termsResult = json[0].string{

            termsLabel.text = termsResult

        }else{
           termsLabel.text = "No data found"
        }


    }


}

在这里输出

标签: iosjsonswift

解决方案


您正在访问 json 数组的第一个元素。json[0]["terms"].string会给你术语元素。

func updateTermsData(json : JSON) {

    if let termsResult = json[0]["terms"].string{

        termsLabel.text = termsResult

    }else{
       termsLabel.text = "No data found"
    }

}

推荐阅读