apple在ios5的时候提供了json的相关处理api,其中最主要的是NSJSONSerialization类。

 + (BOOL)isValidJSONObject:(id)obj;

 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

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

其中最常用的就是以上3个类方法。

第一个用来判断当前数据是否可以转换成JSON,

第二个是把数据转换成JSON,返回NSData,

第三个就是把JSON解析。

例子:

     NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setValue:@"Xcode" forKey:@"name"];
[dictionary setValue:@"4.6.3" forKey:@"version"];
NSArray *otherValueArray = @[@"File", @"Edit", @"View", @"Navigate"];
[dictionary setValue:otherValueArray forKey:@"navigator"]; NSError *error = nil; //转成JSON
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
options:NSJSONWritingPrettyPrinted
error:&error];
if (error)
{
NSLog(@"dic->%@",error);
} NSString *jsonString = [NSString stringWithUTF8String:[jsonData bytes]]; //解析JSON
id resultString = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:&error];
if (error)
{
NSLog(@"dic->%@",error);
} NSArray *navigatorArray = resultString[@"navigator"]; NSLog(@"\njsonString:%@\nresultString:%@\nnavigatorArray:%@",
jsonString, resultString, navigatorArray);

NSLog输出结果:

顺便在提几点,此功能仅限于IOS5才能使用。
根据网友的测试,这个自带的解析效率比目前网上几个第三方的JSON库都要快。

最新文章

  1. transformjs玩转星球
  2. 使用tomcat部署jsp程序
  3. 创建自己的Activity
  4. Android--UI之AutoCompleteTextView
  5. 1029c语言文法定义与c程序的推导过程
  6. ArcGIS动态文本
  7. 001_python变量命名规范(待实践一遍)
  8. C++ Concept 和Java 接口
  9. FormView控件下DropDownList是否可以绑定
  10. HDU 2412 Farm Irrigation
  11. Java:配置环境(Mac)——Eclipse;修改JDK版本后,Eclipse打不开
  12. Kubernetes - 腾讯蓝鲸配置平台(CMDB)开源版部署
  13. element-UI——el-table添加序号
  14. adb logcat查看某个进程的输出日志
  15. IDEA tomcat 热部署不生效的问题
  16. 【Spark工作原理】Spark任务调度理解
  17. B+树索引和哈希索引的区别[转]
  18. Servlet上传下载
  19. Siki_Unity_2-3_UGUI_Unity4.6 UI Beta版本入门学习(未学)
  20. 地图API的选择和使用

热门文章

  1. 0709MySQL 数据库性能优化之表结构优化
  2. DJANGO之自定义模板过滤器
  3. HDU 5175
  4. C++开发人脸性别识别教程(12)——加入性别识别功能
  5. Java学习需要掌握的一些知识
  6. luogu3366 【模板】 最小生成树 Prim
  7. tensorflow利用预训练模型进行目标检测(四):检测中的精度问题以及evaluation
  8. Swift - 将Data数据转换为[UInt8](bytes字节数组)
  9. POJ 2492 A Bug's Life 带权并查集
  10. 兼容各个浏览器的jquyer zclip复制文本插件 无效的解决办法