浅谈JSON数据解析方法

JSON数据解析

  • JSON是什么??

  • 如何把JSON数据解析出来

  • 如何把一个字典转换为JSON


JSON详细介绍

  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

  • JSON常用于服务器给客户端回传数据

  • 现在市面上90%的APP都用JSON传输数据

如何把JSON数据解析出来

  • (1)使用苹果自带的API--NSJSONSerialization

代码:

     NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];
        
        NSArray *citys = JSON[@"city"];
        
        NSMutableArray *cityList = [NSMutableArray array];
        
        for (NSDictionary *dict in citys) {
            
            JKPcity *city = [[JKPcity alloc]init];
            
            [city setValuesForKeysWithDictionary:dict];
            
            [cityList addObject:city];
        }
        self.dataList = cityList;
  • (2)使用第三方JSONKit

代码

	NSDictionary *JSON = [data objectFromJSONData];
	            
    NSArray *citys = JSON[@"city"];
    
    NSMutableArray *cityList = [NSMutableArray array];
    
    for (NSDictionary *dict in citys) {
        
        JKPcity *city = [[JKPcity alloc]init];
        
        [city setValuesForKeysWithDictionary:dict];
        
        [cityList addObject:city];
    }
    self.dataList = cityList;

如何把一个字典转换成JSON数据

  • (1)使用第三方JSONKit

    NSDictionary *dict = @{@"城市"😡"北京",
    @"姓名"😡"小玉"};

    //字典转JSON

    //JSONKit框架中的
    NSData *data = [dict JSONData];

    NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"%@",string);

  • (2)使用苹果自带API

//苹果自带API

NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];

NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);
posted @ 2016-03-18 20:00  往事亦如风  阅读(1104)  评论(0编辑  收藏  举报