1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Objective-C JESON解析

Objective-C JESON解析

时间:2021-11-24 20:59:19

相关推荐

Objective-C JESON解析

以下是ios中三种不同解析方式:

jsonkit需要导入JSONKit.h、JSONKit.m文件,可在官网上下/johnezang/JSONKit。

1、JSONKit解析方式:

OC代码 NSString*jsonString=@"[{\"age\":18,\"book\":{\"price\":23.2,\"title\":\"booooooook1\"},\"name\":\"samyou\"},{\"age\":22,\"book\":{\"price\":21,\"title\":\"booooooook2\"},\"name\":\"samsam\"}]"; NSData*jsonData=[jsonStringdataUsingEncoding:NSUTF8StringEncoding]; //NSDictionary*resultDic=[jsonDataobjectFromJSONData]; NSArray*resultDic=[jsonDataobjectFromJSONData]; NSString*nstr=[resultDicJSONString];//json字符串 NSLog(@"str:%@",nstr); NSLog(@"age=%@",[resultDicvalueForKey:@"age"]); NSLog(@"book=%@",[resultDicvalueForKey:@"book"]); NSArray*books=[resultDicvalueForKey:@"book"]; NSLog(@"book.price===%@",[booksvalueForKey:@"price"]);

2、SBJSON解析方式(通过plist文件进行读取):

/stig/json-framework可下载。

data.plist文件内容:[{"auctionId":1000,"auctionName":"苹果"},{"auctionId":1001,"auctionName":"李子"}]

OC代码 //json解析 NSString*filePath=[[NSBundlemainBundle]pathForResource:@"data"ofType:@"plist"]; //获取字典 NSDictionary*dataDict=[NSDictionarydictionaryWithContentsOfFile:filePath]; //获取jsonkey值 NSString*jsonData=[dataDictobjectForKey:@"auction"]; if(jsonData==nil){ NSLog(@"无数据!"); }else{ //得到jsoin数组 NSArray*jsonArray=[jsonDataJSONValue]; NSLog(@"jsonArray:%@",jsonArray); //通过key获取对应的值 //写法一 NSString*auctionId=[jsonArrayvalueForKey:AUCTION_ID]; NSLog(@"auctionId:%@",auctionId); //写法二 //NSArray*auctionId=[jsonArrayvalueForKey:AUCTION_ID]; //for(inti=0;i<[auctionIdcount];i++){//NSLog(@"auction:%@",[auctionIdobjectAtIndex:i]); //} //写法三(以下方法不行) //for(inti=0;i<[jsonArraycount];i++){//Auction*auction=[jsonArrayobjectAtIndex:i]; //NSLog(@"Auction.auctionName:%@",auction.auctionName); //} } [jsonDatarelease];

3、ios5自带API进行json解析,NSJSONSerialization类

OC代码 NSMutableDictionary*dictionary=[[NSMutableDictionaryalloc]init]; [dictionarysetValue:@"Anthony"forKey:@"name"]; [dictionarysetValue:[NSNumbernumberWithUnsignedInteger:30]forKey:@"Age"]; NSArray*arrayChildren=[[NSArrayalloc]initWithObjects:@"A",@"B",nil]; [dictionarysetValue:arrayChildrenforKey:@"children"]; NSError*error=nil; NSData*jsonData=[NSJSONSerializationdataWithJSONObject:dictionaryoptions:NSJSONWritingPrettyPrintederror:&error]; NSLog(@"jsonData:%@",[jsonDatadescription]); if(error){ NSLog(@"dic->%@",error); } idjsonObject=[NSJSONSerializationJSONObjectWithData:jsonDataoptions:NSJSONReadingAllowFragmentserror:&error]; if(nil!=jsonObject){ if([jsonObjectisKindOfClass:[NSDictionaryclass]]){ NSDictionary*resultDic=(NSDictionary*)jsonObject; NSLog(@"ReceivedJSONDictionary:%@",resultDic); }else{ NSLog(@"ErrorJSONdata."); } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。