Swift:使用Alamofire处理JSON& SwiftyJSON

编程入门 行业动态 更新时间:2024-10-11 05:24:17
本文介绍了Swift:使用Alamofire处理JSON& SwiftyJSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这肯定会被问到好几次,但我还没有找到正确的答案,尽管我一直很努力。

This is sure to be asked several times, but I have not yet found the right answer, although I have been looking very hard.

我使用Alamofire和SwiftyJSON,我的JSON数据看起来像这样:

I use Alamofire and SwiftyJSON and my JSON data looks like that:

{ "528" : { "name" : "Name 1", "id" : "528", "product_id" : null, "visible" : "0", "level" : "2" }, "29" : { "name" : "Name 2", "id" : "29", "product_id" : null, "visible" : "1", "level" : "1" }, "173" : { "name" : "Name 3", "id" : "173", "product_id" : null, "visible" : "0", "level" : "2" }, "143" : { "name" : "Name 4", "id" : "143", "product_id" : null, "visible" : "1", "level" : "2" },

...使用此代码:

Alamofire.request(.GET, dataURL, parameters: nil, encoding: .JSON) .responseJSON { (request, response, jsonData, error) in let json = JSON(jsonData!) println(json) }

...所以一切都应该没问题JSON

...so everything should be fine with JSON

  • 我如何访问这些数据?我的意思是如何获取名称,ID,product_ids等

  • How can i access to that data? I mean how can i get names, ids, product_ids etc

    如何将该数据(名称)放入我的TableViewController?

    How can i put that data (name) to my TableViewController?

    推荐答案

    我在我的一个项目中使用SwiftyJSON和Alamofire。以下是我使用它的方法。

    I am using both SwiftyJSON and Alamofire in one of my projects. Here is how I am using it.

  • 创建一个名为APIProtocol的协议。
  • 设置API接受类型为APIProtocol的委托的GET方法的类。
  • 设置TableViewController以实现APIProtocol。
  • 从TableViewController调用API.get()
  • Create a protocol called APIProtocol.
  • Setup an API class with a GET method that accepts a delegate of type APIProtocol.
  • Setup TableViewController to implement the APIProtocol.
  • Call API.get() from TableViewController
  • 代码

    Code

    // Step 1 protocol APIProtocol { func didReceiveResult(results: JSON) } // Step 2 func get(path: String, parameters: [String: AnyObject]? = nil, delegate: APIProtocol? = nil){ let url = "\(self.hostname)\(path)" NSLog("Preparing for GET request to: \(url)") Alamofire.request(.GET, url, parameters: parameters) .responseJSON { (req, res, json, error) in if(error != nil) { NSLog("GET Error: \(error)") println(res) } else { var json = JSON(json!) NSLog("GET Result: \(json)") // Call delegate if it was passed into the call if(delegate != nil) { delegate!.didReceiveResult(json) } } } } // Step 3 class ActivityViewController: UITableViewController, APIProtocol { var activityModelList: NSMutableArray = [] // This is the array that my tableView is using. ... func didReceiveResult(result: JSON) { var activities: NSMutableArray = [] NSLog("Activity.didReceiveResult: \(result)") for (index: String, activity: JSON) in result { var activityModel = ActivityModel( id: activity["id"].intValue, message: activity["message"].stringValue ) activities.addObject(activityModel) } // Set our array of new models activityModelList = activities // Make sure we are on the main thread, and update the UI. dispatch_sync(dispatch_get_main_queue(), { self.refreshControl!.endRefreshing() self.tableView.reloadData() }) } } // Step 4 override func viewDidLoad() { MyAPI.get("/activities", delegate: self) }

    更多推荐

    Swift:使用Alamofire处理JSON& SwiftyJSON

    本文发布于:2023-11-26 02:06:03,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1632218.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:Alamofire   Swift   JSON   SwiftyJSON   amp

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!