【问题标题】:swiftyJSON move into arrayswiftyJSON 移入数组
【发布时间】:2015-11-28 09:46:57
【问题描述】:

我尝试从 swiftyJSON 开始并在 Swift 中解析信息,所以我从这个 API 开始理解它:

http://api.androidhive.info/contacts/

这是我的代码

import Fuzi
import UIKit
import Alamofire
import SwiftyJSON


class ViewController: UIViewController {

    var arrRes = [[String:AnyObject]]() //Array of dictionary

    var JSON_TestURL = "http://api.androidhive.info/contacts/"

    override func viewDidLoad() {
        super.viewDidLoad()
        //get JSON
        Alamofire.request(.GET, JSON_TestURL).responseJSON { (responseData) -> Void in
            let swiftyJsonVar = JSON(responseData.result.value!)
            //print(swiftyJsonVar)
            //get JSONarray Name and write it into new Array
            if let resData = swiftyJsonVar["contacts"].arrayObject {
                self.arrRes = resData as! [[String:AnyObject]]
            }

            //count array and give "tag"
            print(self.arrRes.count)



            for var index = 0; index < self.arrRes.count; ++index {
                var dict = self.arrRes[index]
                let x = dict["name"] as? String
                print(x)
                print("")
            }
        }

    }

获取姓名、身份证等没有问题,但是当我尝试获取电话号码时,我找不到方法。

【问题讨论】:

    标签: json swift swifty-json


    【解决方案1】:
    for var index = 0; index < self.arrRes.count; ++index {
                    var dict = self.arrRes[index]
                    let x = dict["phone"]!["mobile"] as? String
                    print(x)
                    //print("")
                }
    

    【讨论】:

      【解决方案2】:

      使用 SwiftyJSON 时,您不必像使用 NSJSONSerialization 那样强制转换对象。当简单地调用map 就可以解决问题时,您也不必使用这种循环方式。

      例如,全部替换:

      if let resData = swiftyJsonVar["contacts"].arrayObject {
          self.arrRes = resData as! [[String:AnyObject]]
      }
      
      print(self.arrRes.count)
      
      for var index = 0; index < self.arrRes.count; ++index {
          var dict = self.arrRes[index]
          let x = dict["phone"]!["mobile"] as? String
          print(x)
      }
      

      用这个:

      let contacts = swiftyJsonVar["contacts"].arrayValue
      let allMobilePhones = contacts.map { $0["phone"]["mobile"].stringValue }
      print(allMobilePhones)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        • 1970-01-01
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多