NSJSONSerialization

简介: 在iOS 5发布以后,苹果开始对Json的解析进行支持. 所以至此开始如果你的App只能支持iOS5以上时就考虑别用开源框架了.毕竟用系统的速度才是最快的.

在iOS 5发布以后,苹果开始对Json的解析进行支持.

所以至此开始如果你的App只能支持iOS5以上时就考虑别用开源框架了.毕竟用系统的速度才是最快的.

那么开始:


一:将拿到的Json字符串 转换成 Object,使用如下代码

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

三个参数,和一份返回值,现在每个分别介绍其作用和用法:

data :如果你拿到的是服务器返回过来的一个长字符串,那么需要先将NSString 转换成NSData,代码如下:

[@"{\"a\":\"b\"}" dataUsingEncoding:NSUTF8StringEncoding]
官方注释里面提到:UTF-8是最好最快的执行转换方式.
options:

NSJSONReadingMutableContainers: 设置此参加那返回的对象是可以随时添加新的值,也就是 Mutable 类型的对象

NSJSONReadingMutableLeaves: 还不知道

NSJSONReadingAllowFragments:设置此参数那返回对象是不能再去动态修改的, 如:NSArray NSDictionary

error:如果出错,可以打印看看,虽然是英文的

return:返回的对象类型是由需要转换Json决定的,所以可能是 NSArray 也可能是 NSDictionary







目录
相关文章
|
7月前
|
iOS开发
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash(下)
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash(下)
241 1
|
7月前
|
存储 安全 编译器
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash(上)
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash(上)
248 0
|
iOS开发 Perl
iOS开发 -多Target项目如何优雅的使用pods
iOS开发 -多Target项目如何优雅的使用pods
380 0
|
C++ iOS开发
iOS开发 -- 在Xcode中引入cpp文件,并调用cpp文件中的方法
iOS开发 -- 在Xcode中引入cpp文件,并调用cpp文件中的方法
647 0
iOS开发 -- 在Xcode中引入cpp文件,并调用cpp文件中的方法
|
缓存 JSON IDE
Clang Module 内部实现原理及源码分析
钉钉工程开始支持Swift,在适配clang module的过程中,遇到了各种各样的编译问题,为了弄清楚这些编译失败的真正原因,以及clang module的最佳实践,决定通过深入阅读clang module的实现代码,来解开这些谜团。
826 0
Clang Module 内部实现原理及源码分析
|
Swift C++
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
275 0
Swift-进阶 10:可选类型Optional & Equatable+Comparable协议
|
存储 安全 Swift
Swift5.1—指定构造器和便利构造器
Swift5.1—指定构造器和便利构造器
473 0
Swift5.1—指定构造器和便利构造器
|
编解码 Swift iOS开发
iOS 应用之间的跳转(OC&Swift)
iOS 应用之间的跳转(OC&Swift)
795 0
iOS 应用之间的跳转(OC&Swift)
|
iOS开发
iOS 开发之几个 Demo 分享网站
OSChina 前往 OSChina Code4App 前往 Code4App CocoaChina 前往 CocoaChina 码云 前往码云
2387 0
|
iOS开发
iOS利用锚点实现定点缩放弹窗
iOS利用锚点实现定点缩放弹窗
557 0
iOS利用锚点实现定点缩放弹窗