ios 中使用SBJson拼接和解析json
2014-07-14 13:40
423 查看
1.ios解析json
使用开源json包,项目地址:
http://stig.github.com/json-framework/
NSData * responseData = [respones responseData];
NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
SBJsonParser * parser = [[SBJsonParser alloc]init];
NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析对象
[parser release];
//发送者
NSString * sender = [dicMessageInfo objectForKey:@"sender"];
2.json嵌套对象解析:
//要上传的字符串
NSString *dataStr=[[NSString alloc] initWithString:@"{\"cross\":{\"1\":\"true\",\"2\":\"false\",\"3\":\"true\"}}"];
//获取响应返回字符串
NSData * responseData = [respones responseData];
NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//嵌套解析
SBJsonParser * parser = [[SBJsonParser alloc]init];
NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析对象
NSMutableDictionary * cross = [dicMessageInfo objectForKey:@"cross"];
NSString *cross1= [cross objectForKey:@"1"];
//解析json到各个字符串
//发送者
[parser release];
NSLog(@"cross1: %@",cross1);
3.拼接json字符串
通过使用SBJson中的SBJsonWriter类的方法- (NSString*)stringWithObject:(id)value可以将一个对象中的值格式化为json字符串,符合key/value格式的数据封装到NSDictionary后可以使用该方法进行格式化,其他数据通过拼接字符串的方式格式化。
在拼接过程中可以使用类NSMutableString的方法:
- (void)appendString:(NSString *)aString;、
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
动态添加字符串。
拼接的字符串可通过json在线验证的方式验证其格式是否正确,网址为:
http://jsonlint.com/
-(NSString *) getJsonString
{
NSMutableString *json = [NSMutableString stringWithCapacity:128];
NSString *jsonString=nil;
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
[json appendString:@"{\"data\":{"];
[json appendFormat:@"\"%@\":\"%d\",",@"reset",reset];
if(missionStatus!=NULL)
{
jsonString=[writer stringWithObject:status];
if(jsonString!=NULL)
{
[json appendString:@"\"status\":"];
[json appendString:jsonString];
}
}
[json appendString:@"}}"];
return json;
}
4.利用多个NSDictionary,拼接多层嵌套的json字符串,减少因手工拼接忘记加引号导致的json格式错误
示例代码:
NSDictionary *dataDictionary= [NSDictionary dictionaryWithObjectsAndKeys:mac,@"mac",
game,@"game",
devicetoken,@"devicetoken",
device,@"device",
gv,@"gv",
lang,@"lang",
os,@"os",
hardware,@"hardware",
down,@"down",nil];
NSDictionary *parmDictionary= [NSDictionary dictionaryWithObjectsAndKeys:@"getSession",@"act",
dataDictionary,@"data",nil];
NSDictionary *jsonDictionary=[NSDictionary dictionaryWithObjectsAndKeys:pv,@"pv",
parmDictionary,@"param",nil];
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
NSString *jsonString=nil;
jsonString=[writer stringWithObject:jsonDictionary];
NSLog(@"%@",jsonString);
5.json字符串在线校验网址: http://jsonlint.com/
使用开源json包,项目地址:
http://stig.github.com/json-framework/
NSData * responseData = [respones responseData];
NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
SBJsonParser * parser = [[SBJsonParser alloc]init];
NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析对象
[parser release];
//发送者
NSString * sender = [dicMessageInfo objectForKey:@"sender"];
2.json嵌套对象解析:
//要上传的字符串
NSString *dataStr=[[NSString alloc] initWithString:@"{\"cross\":{\"1\":\"true\",\"2\":\"false\",\"3\":\"true\"}}"];
//获取响应返回字符串
NSData * responseData = [respones responseData];
NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//嵌套解析
SBJsonParser * parser = [[SBJsonParser alloc]init];
NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析对象
NSMutableDictionary * cross = [dicMessageInfo objectForKey:@"cross"];
NSString *cross1= [cross objectForKey:@"1"];
//解析json到各个字符串
//发送者
[parser release];
NSLog(@"cross1: %@",cross1);
3.拼接json字符串
通过使用SBJson中的SBJsonWriter类的方法- (NSString*)stringWithObject:(id)value可以将一个对象中的值格式化为json字符串,符合key/value格式的数据封装到NSDictionary后可以使用该方法进行格式化,其他数据通过拼接字符串的方式格式化。
在拼接过程中可以使用类NSMutableString的方法:
- (void)appendString:(NSString *)aString;、
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
动态添加字符串。
拼接的字符串可通过json在线验证的方式验证其格式是否正确,网址为:
http://jsonlint.com/
-(NSString *) getJsonString
{
NSMutableString *json = [NSMutableString stringWithCapacity:128];
NSString *jsonString=nil;
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
[json appendString:@"{\"data\":{"];
[json appendFormat:@"\"%@\":\"%d\",",@"reset",reset];
if(missionStatus!=NULL)
{
jsonString=[writer stringWithObject:status];
if(jsonString!=NULL)
{
[json appendString:@"\"status\":"];
[json appendString:jsonString];
}
}
[json appendString:@"}}"];
return json;
}
4.利用多个NSDictionary,拼接多层嵌套的json字符串,减少因手工拼接忘记加引号导致的json格式错误
示例代码:
NSDictionary *dataDictionary= [NSDictionary dictionaryWithObjectsAndKeys:mac,@"mac",
game,@"game",
devicetoken,@"devicetoken",
device,@"device",
gv,@"gv",
lang,@"lang",
os,@"os",
hardware,@"hardware",
down,@"down",nil];
NSDictionary *parmDictionary= [NSDictionary dictionaryWithObjectsAndKeys:@"getSession",@"act",
dataDictionary,@"data",nil];
NSDictionary *jsonDictionary=[NSDictionary dictionaryWithObjectsAndKeys:pv,@"pv",
parmDictionary,@"param",nil];
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
NSString *jsonString=nil;
jsonString=[writer stringWithObject:jsonDictionary];
NSLog(@"%@",jsonString);
5.json字符串在线校验网址: http://jsonlint.com/
相关文章推荐
- ios 中使用SBJson拼接和解析json
- ios 中使用SBJson拼接和解析json
- ios 中使用SBJson拼接和解析json
- ios 中使用SBJson拼接和解析json
- iOS 使用SBJSON创建和解析JSON
- iOS 使用SBJSON创建和解析JSON
- iOS 使用SBJSON创建和解析JSON
- IOS开发之——使用SBJson拼接Json字符串
- IOS开发之——使用SBJson拼接Json字符串
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
- iOS json解析之SBJson
- iOS SBJson解析,拼接的用法
- iOS- JSon和Xml解析,与服务器交互数据的解析详解与使用,各种解析方式详解
- IOS问题汇总:2015-1-8 SBJson解析时报错—json文件字符非法
- 『IOS』不要使用SBJSON(json-framework)
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
- ios中使用 NSJSONSerialization对 json数据的解析
- IOS JSON解析之JSONKit使用
- IOS中四种解析JSON的方法(IOS5自带支持方法、JSONKit、SBJson、TouchJson)
- ios开发之解析json字符串(SBJson)