栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用NSURLSession在Swift中解析JSON

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用NSURLSession在Swift中解析JSON

不要

AnyObject
为已解码对象声明类型,因为您希望它是an,
NSDictionary
并且您正在执行转换来做到这一点。

另外,最好将零选项用于NSJSONSerialization而不是随机选项。

在我的示例中,我还使用了一个自定义错误类型来进行演示。

请注意,如果您使用的是自定义错误类型,则还必须包括泛型,

catch
以使其详尽无遗(在本示例中,将简单向下转换为NSError)。

enum JSONError: String, ErrorType {    case NoData = "ERROR: no data"    case ConversionFailed = "ERROR: conversion from JSON failed"}func jsonParser() {    let urlPath = "http://headers.jsontest.com/"    guard let endpoint = NSURL(string: urlPath) else {        print("Error creating endpoint")        return    }    let request = NSMutableURLRequest(URL:endpoint)    NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in        do { guard let data = data else {     throw JSONError.NoData } guard let json = try NSJSONSerialization.JSonObjectWithData(data, options: []) as? NSDictionary else {     throw JSONError.ConversionFailed } print(json)        } catch let error as JSonError { print(error.rawValue)        } catch let error as NSError { print(error.debugDescription)        }   }.resume()}

与Swift 3.0.2相同:

enum JSONError: String, Error {    case NoData = "ERROR: no data"    case ConversionFailed = "ERROR: conversion from JSON failed"}func jsonParser() {    let urlPath = "http://headers.jsontest.com/"    guard let endpoint = URL(string: urlPath) else {        print("Error creating endpoint")        return    }    URLSession.shared.dataTask(with: endpoint) { (data, response, error) in        do { guard let data = data else {     throw JSONError.NoData } guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary else {     throw JSONError.ConversionFailed } print(json)        } catch let error as JSonError { print(error.rawValue)        } catch let error as NSError { print(error.debugDescription)        }    }.resume()}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号