如何使用web url解析ios中的json
嗨,我从外部源获取json并在ios中解析它。我的代码在下面 注=json和cats变量为NSArray如何使用web url解析ios中的json,ios,json,Ios,Json,嗨,我从外部源获取json并在ios中解析它。我的代码在下面 注=json和cats变量为NSArray NSURL * url = [NSURL URLWithString:@"http://myurl.json"]; NSData * data = [NSData dataWithContentsOfURL:url]; json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions er
NSURL * url = [NSURL URLWithString:@"http://myurl.json"];
NSData * data = [NSData dataWithContentsOfURL:url];
json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
cats = [[NSMutableArray alloc] init];
for (int i=0; i < json.count; i++) {
NSString * CatId = [[json objectAtIndex:i] objectForKey:@"id"];
NSString * CatName = [[json objectAtIndex:i] objectForKey:@"name"];
NSString * CatIcon = [[json objectAtIndex:i] objectForKey:@"icon"];
categories * cat = [[categories alloc] initWithCId:CatId andCName:CatName andCIcon:CatIcon];
[cats addObject:cat];
NSURL*url=[NSURL URLWithString:@”http://myurl.json"];
NSData*data=[NSData dataWithContentsOfURL:url];
json=[NSJSONSerialization JSONObjectWithData:数据选项:kNilOptions错误:nil];
cats=[[NSMutableArray alloc]init];
for(int i=0;i
json就在这里
{“categories”:[{“id”:1,“name”:“Healthcare”,“icon”:“/icons/images/65/original_56.png?1386745569”},{“id”:10,“name”:“Mall”,“icon”:“/icons/images/60/original_51.png?1386745369”},{“id”:11,“name”:“tauphq”,“icon”:/icons/images:13,“名称”:“SPA”,“图标”:“/icons/images/48/original_39.png?1386745093”},{“id”:14,“name”:“ATM”,“icon”:“/icons/images/22/original_13.png?138674578”},{“id”:15,“name”:“Travel”,“icon”:“/images/12/original_3.png?138674393”},{“id”:16,“name”:“游戏区”,“icon”:“/icons/images/68/original_59.png?1386745626”},{“id”:17,“name”学术图标“:”“/icons/images/10/original_1.png?138674264”},{“id”:18,“name”:“Textile”,“icon”:“/icons/images/46/original_37.png?13867445050”}
试试这个:
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
json = [dict objectForKey:@"categories"];
当您尝试此操作时:
NSString * CatId = [[json objectAtIndex:i] objectForKey:@"id"];
它翻译成:数组->字典->字符串
但是你可以看到你不想要这个。您需要:字典->数组->字典->字符串 代码:
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSArray *array = [dict objectForKey:@"categories"];
NSString * CatId = [[array objectAtIndex:0] objectForKey:@"id"];
试试这个:
NSURL * url = [NSURL URLWithString:@"http://myurl.json"];
NSData * data = [NSData dataWithContentsOfURL:url];
NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSArray *catsArray = [NSArray arrayWithArray:[json objectForKey:@"categories"]];
cats = [[NSMutableArray alloc] init];
for (int i = 0; i < catsArray.count; i++) {
NSString * CatId = [[catsArray objectAtIndex:i] objectForKey:@"id"];
NSString * CatName = [[catsArray objectAtIndex:i] objectForKey:@"name"];
NSString * CatIcon = [[catsArray objectAtIndex:i] objectForKey:@"icon"];
categories * cat = [[categories alloc] initWithCId:CatId andCName:CatName andCIcon:CatIcon];
[cats addObject:cat];
}
NSURL*url=[NSURL URLWithString:@”http://myurl.json"];
NSData*data=[NSData dataWithContentsOfURL:url];
NSDictionary*json=[NSJSONSerialization JSONObject WithData:数据选项:kNilOptions错误:nil];
NSArray*catsArray=[NSArray阵列WithArray:[json objectForKey:@“categories”];
cats=[[NSMutableArray alloc]init];
对于(int i=0;i
试试这个
NSURL * url = [NSURL URLWithString:@"http://myurl.json"];
NSData * data = [NSData dataWithContentsOfURL:url];
NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSArray * cat = [json objectForKey:@"categories"];
for(NSDictionary * tempdict in cat)
{
NSString * CatId = [NSString stringWithFormat:@"%@",[tempdict objectForKey:@"id"]];
NSString * CatName = [tempdict objectForKey:@"name"];
NSString * CatIcon = [tempdict objectForKey:@"icon"];
categories * cat = [[categories alloc] initWithCId:CatId andCName:CatName andCIcon:CatIcon];
}
此工作:将JSON视为NSMutabReLayle,然后很容易逐个获取对象数组:
NSMutableArray *userDetails = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
NSLog(@"User Det %@", userDetails);
if (userDetails == nil || [userDetails count] == 0) {
} else {
// 3. iterate the array; each element is a dictionary...
for (NSDictionary *lesson in userDetails)
{
NSString * CatId = [[catsArray objectAtIndex:i] objectForKey:@"id"];
NSString * CatName = [[catsArray objectAtIndex:i] objectForKey:@"name"];
NSString * CatIcon = [[catsArray objectAtIndex:i] objectForKey:@"icon"];
categories * cat = [[categories alloc] initWithCId:CatId andCName:CatName andCIcon:CatIcon];
[cats addObject:cat];
}
}
当你使用上面的代码时,你得到了什么?一个空数组,对吗?
NSURL * url = [NSURL URLWithString:@"http://myurl.json"];
NSData * data = [NSData dataWithContentsOfURL:url];
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSArray *myArray = [jsonData objectForKey:@"categories"];
cats = [[NSMutableArray alloc] init];
for (NSDictionary *temp in myArray) {
NSString * CatId = [NSString stringWithFormat:@"%d",[temp objectForKey:@"id"]];
NSString * CatName = [temp objectForKey:@"name"];
NSString * CatIcon = [temp objectForKey:@"icon"];
categories * cat = [[categories alloc] initWithCId:CatId andCName:CatName andCIcon:CatIcon];
[cats addObject:cat];
}