关于json文本数据的一些使用方法
1.对象的存取
如果是对象的存取,可能需要序列化和反序列化对象的属性。
NSDictionary params = @{@"hello":@"world"}; NSArray arr = @[@"1",@"2",@"3"]; [arr addObject:params]; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr]; NSArray *arr2 = [NSKeyedUnarchiver unarchiveObjectWithData:data]; NSLog(@"arr2: %@", arr2);
2.解析JSON
// 加载一个本地的JSON文件路径,放到NSData对象中去 NSData *jsonData2 = [NSData dataWithContentsOfFile:[CachesManager getCheckInstallInfoPath]]; // 把一个json格式的data,解析为OC中的数据对象(一般为数组或字典) id obj = [NSJSONSerialization JSONObjectWithData:jsonData2 options:NSJSONReadingMutableContainers error:nil]; // 判断一下,id是NSMutableArray类型还是NSMutableDictionary if ([obj isKindOfClass:[NSArray class]]) { NSMuttableArray *array = obj; NSLog(@"arr: %@", array); } else { NSMutableDictionary *dic = obj; NSLog(@"dic: %@", dic); }
3.数据转化成JSON格式的数据
// 把一个OC中的数据对象(数组或对象--在OC中类似字典)转换成JSON格式的数据 NSDictionary * dic = @{@"name": @"Tom",@"where":@"beijing",@"how": @"by air",@"data": @"2016.04.18"}; NSLog(@"DIC = %@",dic); NSData * data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error]; // 把一个json格式的data,解析为OC中的NSString类型对象 // 无特殊意义,一般用来查看JSON文本封装成 数组 还是 对象(OC中为字典) NSString * jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"-----------------------------%@",jsonString);