0

アクセスJSONファイル
にURLを使用しています 次のコードからこれを取得します

    NSData* data=[jsonString dataUsingEncoding: [NSString defaultCStringEncoding] ];
    NSError *error;  //where jsonString is string of URL
    NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];


    if (jsonDictionary==nil) {
    NSLog(@"Error::Loading");

}else
{

    NSArray *array = [jsonDictionary objectForKey:@"categories"];
    for (int i=0; i<[array count]; i++) {
        NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
        [dic setValue:[[array objectAtIndex:i] valueForKey:@"cat_id"] forKey:@"cat_id"];
        [dic setValue:[[array objectAtIndex:i] valueForKey:@"cat_name"] forKey:@"cat_name"];
        [dic setValue:[[array objectAtIndex:i] valueForKey:@"cat_image"] forKey:@"cat_image"];
        [dic setValue:[[array objectAtIndex:i] valueForKey:@"cat_list"] forKey:@"cat_list"];
        [newsArray addObject:dic];

        [categoryArry addObject:[dic valueForKey:@"cat_name"]];
        [categoryId addObject:[dic valueForKey:@"cat_id"]];
        [categoryImage addObject:[dic valueForKey:@"cat_image"]];
        [categoryList addObject:[dic valueForKey:@"cat_list"]];
        [dic release];


    }
}

このようなjson構造を取得します

{
    "categories": [
        {
            "cat_id": "15",
            "cat_name": "Shop",
            "cat_image": null,
            "cat_list": [
                {
                    "sub_cat_name": "New Arrivals",
                    "Cat_Data": [
                        {
                            "prod_name": "Generals Coat Biege",
                            "prod_price": "215.0000",
                            "prod_image": "honey_beau_lookbook_winter13_febmarch-24.jpg"
                        }
                    ]
                }
            ]
        }
    ]
}

categoryArry には "Shop" という値しか含まれていませ
んが、categoryArry の "sub_cat_name" にアクセスして、Shop レベルをスキップしたい....

つまり、"sub_cat_name" を categoryArry に格納したいと考えています。

4

3 に答える 3

0

コードを次のように置き換えます。

  [categoryArry addObject:[dic valueForKey:@"cat_name"]];

   [categoryArry addObject:[[dic valueForKey:@"cat_list"][0]] valueForKey:@"sub_cat_name"];

jsonDictionaryとにかく、別の を作成する代わりに を直接使用できますdict

于 2013-06-05T13:27:02.120 に答える