ios中json解析
以下是ios中三种不同解析方式:jsonkit需要导入JSONKit.h、JSONKit.m文件,可在官网上下https://github.com/johnezang/JSONKit。
1、JSONKit解析方式: NSString *jsonString = @"[{\"age\":18,\"book\":{\"price\":23.2,\"title\":\"booooooook1\"},\"name\":\"samyou\"},{\"age\":22,\"book\":{\"price\":21,\"title\":\"booooooook2\"},\"name\":\"samsam\"}]";
NSData *jsonData = ;
// NSDictionary *resultDic = ;
NSArray *resultDic = ;
NSString *nstr = ;//json字符串
NSLog(@"str : %@",nstr);
NSLog(@"age= %@", );
NSLog(@"book= %@", );
NSArray *books = ;
NSLog(@"book.price===%@",);2、SBJSON解析方式(通过plist文件进行读取):
https://github.com/stig/json-framework可下载。
data.plist文件内容:[{"auctionId":1000,"auctionName":"苹果"},{"auctionId":1001,"auctionName":"李子"}] //json解析
NSString *filePath = [ pathForResource:@"data" ofType:@"plist"];
//获取字典
NSDictionary *dataDict = ;
//获取json key值
NSString *jsonData = ;
if(jsonData == nil){
NSLog(@"无数据!");
}else{
//得到jsoin数组
NSArray *jsonArray = ;
NSLog(@"jsonArray:%@",jsonArray);
//通过key获取对应的值
//写法一
NSString *auctionId = ;
NSLog(@"auctionId : %@",auctionId);
//写法二
// NSArray *auctionId = ;
// for(int i=0;i<;i++){
// NSLog(@"auction : %@",);
// }
//写法三(以下方法不行)
// for(int i=0;i<;i++){
// Auction *auction = ;
// NSLog(@"Auction.auctionName : %@",auction.auctionName);
// }
}
;3、ios5自带API进行json解析,NSJSONSerialization类NSMutableDictionary *dictionary = [ init];
;
forKey:@"Age"];
NSArray *arrayChildren = [ initWithObjects:@"A", @"B",nil];
;
NSError *error = nil;
NSData *jsonData = ;
NSLog(@"jsonData : %@",);
if (error) {
NSLog(@"dic->%@",error);
}
id jsonObject = ;
if (nil != jsonObject) {
if (]){
NSDictionary *resultDic = (NSDictionary *)jsonObject;
NSLog(@"Received JSON Dictionary : %@", resultDic);
} else {
NSLog(@"Error JSON data.");
}
}本文摘自:http://wenxin2009.iteye.com/blog/1671691
页:
[1]