浅谈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);