iOS5.0新功能之——NSJSONSerialization解析JSON数据

来源:互联网 发布:linux密码忘了 编辑:程序博客网 时间:2024/06/01 09:49

以下是用于保存

复制代码
 1 - (IBAction)touchWriteButton:(id)sender { 2      NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 3      [dictionary setValue:@"Anthony" forKey:@"First Name"]; 4      [dictionary setValue:@"Robbins" forKey:@"Last Name"]; 5      [dictionary setValue:[NSNumber numberWithUnsignedInteger:51] forKey:@"Age"]; 6      NSArray *arrayOfAnthonysChildren = [[NSArray alloc] initWithObjects:@"Anthony's Son 1", @"Anthony's Daughter 1", @"Anthony's Son 2", @"Anthony's Son 3", @"Anthony's Daughter 2", nil]; 7      [dictionary setValue:arrayOfAnthonysChildren forKey:@"children"]; 8      NSError *error = nil; 9      NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];10      if (error) { 11         NSLog(@"dic->%@",error);12      }13      [dictionary release];14      BOOL succeed = [jsonData writeToFile:JSON_PATH atomically:YES];15      if (succeed) {16          NSLog(@"Save succeed");17      }else {18          NSLog(@"Save fail");19      }20 } 
复制代码

下面是读取方式:

复制代码
 1 - (IBAction)touchReadButton:(id)sender {  2       NSData *jsonData = [[NSData alloc] initWithContentsOfFile:JSON_PATH];     /* Now try to deserialize the JSON object into a dictionary */ 3       NSError *error = nil; 4       id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error]; 5      if (jsonObject != nil && error == nil){ 6          NSLog(@"Successfully deserialized..."); 7          if ([jsonObject isKindOfClass:[NSDictionary class]]){ 8               NSDictionary *deserializedDictionary = (NSDictionary *)jsonObject; 9               NSLog(@"Dersialized JSON Dictionary = %@", deserializedDictionary);10          } else if ([jsonObject isKindOfClass:[NSArray class]]){11              NSArray *deserializedArray = (NSArray *)jsonObject;12              NSLog(@"Dersialized JSON Array = %@", deserializedArray);13          } else {14              NSLog(@"An error happened while deserializing the JSON data.");15          }16      }17      [jsonData release];18  }
复制代码
0 0