Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用web url解析ios中的json_Ios_Json - Fatal编程技术网

如何使用web url解析ios中的json

如何使用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

嗨,我从外部源获取json并在ios中解析它。我的代码在下面

注=json和cats变量为NSArray

    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];
   }