swift JSON字符串解析 json parse / json decode
来源:互联网 发布:最新网络剧排行榜 编辑:程序博客网 时间:2024/06/05 05:28
这里讲解的是json字符串解析.寻常解析用三方库即可.但是有时,解析出来的数据并不是你想要的.例如返回的数据为一个数组,但是却用json字符串包装的.那么你用原生的或三方库解析出来的数据为一个字符串类型:
["http://www.example.com/uploads/7186d834f55e9bd95754b12ebe6df911.jpg","http://www.example.com/uploads/8bd827dae398640c198f991fe7a877bb.jpg"]
这里用Swift代码.及解析出来的类型为String类型,本来想用的是数组,但是String缺无法转化为Array类型,我试过去掉两边中括号,并用 “逗号” 分割开.但是没有成功. 这时就需要进一步把解析出的Stirng再解析成数组
//例如的数据,用一个常量imageJSONStr来接收的 let imageJSONStr = "["http://www.zhuluoxi.com/uploads/7186d834f55e9bd95754b12ebe6df911.jpg","http://www.zhuluoxi.com/uploads/8bd827dae398640c198f991fe7a877bb.jpg"]" let images = Array<String>() //用来接收解析完成的数组 //字符串编码成json数据 let data:NSData = imageJsonStr.dataUsingEncoding(NSUTF8StringEncoding)! var img: AnyObject? do{ //解析json类型数组 try img = NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) }catch let error as NSError{ print("error: \(error)") } images = img as! Array<String>
ok,搞定,images 就是你想要的最终的数组
再来个终极版的,用extension解决,一劳永逸,使用时,一句代码搞定:
extension String { var parseJSONString: AnyObject? { var any: AnyObject? let data = self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) do{ any = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) }catch let error as NSError{ print("error: \(error)") } return any }}
使用时这样:
let imageJSONStr = "["http://www.zhuluoxi.com/uploads/7186d834f55e9bd95754b12ebe6df911.jpg","http://www.zhuluoxi.com/uploads/8bd827dae398640c198f991fe7a877bb.jpg"]" let images: Array<String> = imageJSONStr.parseJSONString as! Array<String>
搞定.一句代码解决.而别别人也可以使用这个方法了.
最后有个小问题,对于上面extension中的do catch 方法中,不能直接return,哪位高手可以指点小弟一下怎么做,不用 “any” 这个临时变量,直接在do括号中返回
0 1
- swift JSON字符串解析 json parse / json decode
- java 解析(parse) json
- json解析 eval() 和 JSON.parse()
- JSON.parse()和JSON.stringify()用法解析
- JSON.parse()和JSON.stringify()用法解析
- Parse JSON
- JSON.parse
- JSON.parse()
- JSON.parse()
- JSON.parse()
- JSON.parse() JSON.stringify()
- JSON.parse(JSON.stringify())
- 【JSON】JSON.parse()
- JSON解析:JSON.stringify()、JSON.parse()和eval(string)
- JSON.parse():json字符串转化为json对象方法
- JSON.parse()和JSON.stringify()--json对象<=>字符串
- swift 解析json数据
- Swift解析JSON数据
- php初学(1)--imooc笔记
- NSSet和NSMutableSet的常用方法
- Android Studio 9 patch 编译错误
- Swift 笔记(三)
- 1071. Speech Patterns (25)
- swift JSON字符串解析 json parse / json decode
- 类之间的关系
- 资产管理项目中的一些积累
- SenchaTouch2.0-组件的停靠
- JSP学习笔记三之response对象和request对象
- MySQL 时间处理函数
- windows网络版象棋的实现
- Android Kotlin入门-基本类型
- 插入排序