zoukankan      html  css  js  c++  java
  • iOS JSON 数据解析

    JSON 是比较常用的数据格式,相比 XML 层次更清晰,这里介绍两种解析 JSON 的方式:NSJSONSerialization 和 JSONKit

    NSJSONSerialization 是 iOS 5 以后推出的,比较好用的 JSON 解析包.

    JSON 数据格式由对应的 '[',']' 和 '{','}',前者表示数组,后者表示字典.

    NSJSONSerialization 解析过程:

    1.获取文件路径

    2.获取文件内容

    3.解析

    简单小例子:

     1 - (IBAction)parserJSON:(id)sender {
     2     
     3     //获取文件路径
     4     
     5     NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
     6     NSError *error = nil;
     7     NSData *jsonData = [NSData dataWithContentsOfFile:jsonPath];
     8     NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
     9     if (error == nil) {
    10         NSLog(@"%@",array);
    11     }else {
    12         NSLog(@"%@",error);
    13     }
    14     
    15     //数据封装
    16     
    17     NSMutableArray *arr = [NSMutableArray array];
    18     
    19     for (NSDictionary *dic in array) {
    20         Student *stu = [[Student alloc]initWithDictionary:dic];
    21         [arr addObject:stu];
    22     }
    23     
    24     for (Student *stu in arr) {
    25         NSLog(@"%@",stu);
    26     }
    27 }

    JSONKit 解析:(代码)

     1 - (IBAction)parserJSONWithJESONKIT:(id)sender {
     2     
     3     //获取文件路径
     4     
     5     NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
     6     NSError *error = nil;
     7     NSString *JSONStr = [[NSString alloc]initWithContentsOfFile:jsonPath encoding:NSUTF8StringEncoding error:&error];
     8     NSLog(@"%@",JSONStr);
     9     //让jesonKIT 解析 JSON 数据
    10     NSMutableArray *array = [JSONStr objectFromJSONString];
    11     NSLog(@"%ld",array.count);
    12     //数据封装
    13     NSMutableArray *arr = [NSMutableArray array];
    14     
    15     for (NSDictionary *dic in array) {
    16         Student *stu = [[Student alloc]initWithDictionary:dic];
    17         [arr addObject:stu];
    18     }
    19     
    20     for (Student *stu in arr) {
    21         NSLog(@"%@",stu);
    22     }
    23 }

    JSONKit.zip 下载

  • 相关阅读:
    Centos配置Apache phpadmin环境
    Linux添加FTP用户并设置权限
    Java中的过滤器
    【eclipse】注释模版
    [ci db操作]
    给vmware的Linux虚拟机添加硬盘
    基于LVDS/M-LVDS的数据通信
    如何找回丢失的硬盘分区表?
    vc++怎么可以直接刷掉MBR?搞笑的吧
    EFI、UEFI、MBR、GPT的区别
  • 原文地址:https://www.cnblogs.com/Ager/p/4928797.html
Copyright © 2011-2022 走看看