一、OC里生成指定格式JSON串的关键秘诀为:
①、每个{} 对应一个 NSDictionary
②、每个[] 对应一个 NSArray
二、代码如下:
#import "ViewController.h"
#import "SBJson.h"
@interface ViewController ()
{
NSString *strMyJson;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view,typically from a nib.
//生成一个JSON串
if (![self writeJson])
{
NSLog(@"写出JSON字符串失败");
return;
}
else
NSLog(@"写出JSON字符串成功");
//解析一个JSON串
if (![self readJson])
{
NSLog(@"解析JSON字符串失败");
return;
}
else
NSLog(@"解析JSON字符串成功");
}
-(BOOL) readJson
{
@try
{
SBJsonParser *parser=[[SBJsonParser alloc] init];
NSDictionary *dic3_1=[parser objectWithString:strMyJson];
if (nil!=dic3_1)
{
NSLog(@"%@",dic3_1.allKeys[0]);
NSDictionary *dic2_1=dic3_1.allValues[0];
NSLog(@"%@",dic2_1.allKeys[0]);
NSLog(@"%@",dic2_1.allKeys[1]);
NSDictionary *dic1=dic2_1.allValues[0];
NSDictionary *dic2=dic2_1.allValues[1];
NSLog(@"%@",dic1.allKeys[0]);
NSLog(@"%@",dic1.allValues[0]);
NSLog(@"%@",dic1.allKeys[1]);
NSLog(@"%@",dic1.allValues[1]);
NSLog(@"%@",dic2.allKeys[0]);
NSLog(@"%@",dic2.allValues[0]);
NSLog(@"%@",dic2.allKeys[1]);
NSLog(@"%@",dic2.allValues[1]);
return YES;
}
else
{
return NO;
}
}
@catch (NSException *exception)
{
return NO;
}
}
-(BOOL) writeJson
{
@try
{
NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys:@"8888",@"age",@"174",@"length",nil];
NSDictionary *dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"9999",@"178",nil];
NSDictionary *dic2_1=[NSDictionary dictionaryWithObjectsAndKeys:dic1,@"liji",dic2,@"lixi",nil];
NSDictionary *dic3_1=[NSDictionary dictionaryWithObjectsAndKeys:dic2_1,@"person",nil];
SBJsonWriter *writer=[[SBJsonWriter alloc] init];
NSString *strJson=[writer stringWithObject:dic3_1];
if (nil!=strJson)
{
strMyJson=strJson;
NSLog(@"%@",strJson);
return YES;
}
else
return NO;
}
@catch(NSException *e)
{
return NO;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。