NSJSONSerialization 解析数据 ,进行数据交换。

来源:互联网 发布:mac virtualbox 全屏 编辑:程序博客网 时间:2024/06/08 09:57

    数据解析有名的第三方框架有SBJSON和JSONKit ,但是我项目中酒简简单单的使用了苹果自带的NSJSONSerialization来进行数据解析。

 

1  常用的方法有两个

  

[NSJSONSerialization JSONObjectWithData:<#(nonnull NSData *)#> options:<#(NSJSONReadingOptions)#> error:<#(NSError * _Nullable __autoreleasing * _Nullable)#>]

json数据转成OC对象, <#(nonnull NSData *)#> :NSData类型,通过

   NSData *Data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];获取data

<#(NSJSONReadingOptions)#> :枚举类型

NSJSONReadingMutableContainers = (1UL << 0), 返回的是可变的容器,可以是可变的数组或字典

    NSJSONReadingMutableLeaves = (1UL << 1), 返回的是可变的叶子节点 ,意思是类似可变数组里面的字典也是可变的

    NSJSONReadingAllowFragments 不是以上两种就选择这个。

<#(NSError * _Nullable __autoreleasing * _Nullable)#> :填一个指针的地址,我一般填nil,代表不获取任何错误

[NSJSONSerialization dataWithJSONObject:<#(nonnull id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError * _Nullable __autoreleasing * _Nullable)#>

<#(nonnull id)#> :填需要解析成JSON的数据,数组或者字典,

<#(NSJSONWritingOptions)#> : 枚举址只有一个参数 ,但如果设置为0 可以过滤掉空格和回车.

 获取解析完成的jsonstr  NSString *jsonStr = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

0 0