簡體   English   中英

如何在Swift 3.0中將JSON輸出設置到UILabel中?

[英]How to set JSON output into UILabel in Swift 3.0 ?

我有這些JSON數據。

(
        {
        email = "b@p.com.my";
        login = ID001;
        pw = 1234;
    },
        {
        email = "p@d.com.my";
        login = ID002;
        pw = 12345;
    }
)

現在,我只能在x代碼輸出中打印myJSON值。

我的問題是,如何將每個JSON顯示到UILabel _email,_login,_pw?

有人說我需要將其存儲為變量並設置為UILabel,但我不知道該怎么做。 感謝有人可以幫助我解決這個問題。

ViewController.swift

import UIKit
class ViewController: UIViewController {
    @IBOutlet var _email: UILabel!
    @IBOutlet var _login: UILabel!
    @IBOutlet var _pw: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        let url = URL(string: "http://localhost/get.php")
        let task = URLSession.shared.dataTask(with: url!) {
            (data, response, error) in
            if error != nil {
                print("Error")
                return
            }
            else {
                if let content = data {
                    do {
                        let myJSON = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
                        print(myJSON)
                    }
                    catch {}   
                }
            }
        }
        task.resume()
    }
}

謝謝。

編輯:在您打印myJSON的塊之后,請嘗試以下操作:

for eachItem in myJSON {
if let emailParsed = eachItem["email"] as? String {
    print(emailParsed)
    _email.text = emailParsed 
} 
}

此循環在所有詞典之間運行, 解決方案可能對您有所幫助。 請通過它!

嗨,請嘗試這個

   for i..0 < myJson.count { 
      let object = myJson[i] as AnyObject
      if let emailParsed = myJSON["email"] as? String {
         _email.text = emailParsed 
      }     
   }

已編輯

for i..0 < myJson.count { 
      let object = myJson[i] as [String : AnyObject]
      if let emailParsed = myJSON["email"] as? String {
         _email.text = emailParsed 
      }     
   }

這很簡單,因為您的json對象提供了一個字典數組,因此首先您必須從數組中獲取第一個對象,然后您可以獲取傳遞密鑰的字符串

override func viewDidLoad() 
{
  super.viewDidLoad()
  let url = URL(string: "http://localhost/get.php")
  let task = URLSession.shared.dataTask(with: url!) 
             {
             (data, response, error) in
                  if error != nil
                     {
                       print("Error")
                       return
                     }
                  else 
                     {
                       if let content = data 
                          {
                             do {
                                  let myJSON = try JSONSerialization.jsonObject(with: content, options:JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
                                 //   print(myJSON)
                                    for data in myJSON
                                    {
                                        let email = data.1["email"] as? String
                                        _email.text = email

                                    }
                                }
                                catch {}   
                          }
                      }
             }
             task.resume()
      }
}

對於連擊選項,您可以使用一些預定義的庫,例如swiftyJSON。 為了獲得最佳結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM