0

これは Web サービスからの私の Json 応答です。解析に問題があります。私がやりたいことは、例えばテーブルビューのデータの下にロードすることです. 3.7 行のセクション ヘッダーおよびその他の値として。どうすればできますか?? ビルトイン API のサードパーティ フレームワークを使用したい。

どんな助けでも大歓迎です。

{"Links":{"3.7":[{"fld_app_download_id":"7111","fld_app_version_id":"1928","fld_date_added":"2012-10-04 08:40:38","fld_cracker":"vend3tta101","fld_download_link":"fiberupload.com","fld_url":"http:\/\/fiberupload.com\/pwzmodjshwhr\/1Password_Pro_(v3.7_v370009_Univ_os31)-vend3tta101.ipa","fld_status":"1"},{"fld_app_download_id":"7112","fld_app_version_id":"1928","fld_date_added":"2012-10-04 08:40:38","fld_cracker":"vend3tta101","fld_download_link":"depositfiles.com","fld_url":"http:\/\/depositfiles.com\/files\/eyhcw06b6","fld_status":"1"},{"fld_app_download_id":"7113","fld_app_version_id":"1928","fld_date_added":"2012-10-04 08:40:38","fld_cracker":"vend3tta101","fld_download_link":"turbobit.net","fld_url":"http:\/\/turbobit.net\/vyc5jkr5s51k.html","fld_status":"1"}]}}
4

3 に答える 3

0

NSJSONSerialization授業は見ましたか?JSON とプロパティ リスト間の変換を処理します。

于 2012-10-10T00:54:04.867 に答える
0

簡単な方法で、次のコードを見てください。

#import "YourViewController.h"

@interface NSDictionary(JSONCategories)
+(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress;
-(NSData*)toJSON;
@end
@implementation NSDictionary(JSONCategories)
+(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress{
NSData* data = [NSData dataWithContentsOfURL: [NSURL URLWithString: urlAddress] ];
__autoreleasing NSError* error = nil;
id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (error != nil) return nil;
return result;
}
-(NSData*)toJSON{
NSError* error = nil;
id result = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:&error];
if (error != nil) return nil;
return result;    
}
@end

@implementation YourViewController

-(IBAction)downloadData:(id)sender{

    NSString *yourResponseLink = @"YOUR RESPONSE LINK";
    NSURL *urlString = [NSURL URLWithString:urlWroteString];
    NSData* data = [NSData dataWithContentsOfURL:urlString];
    [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:NO];

}

-(void)fetchedData:(NSData *)responseData {

    NSError* error;

    if (responseData == nil) {

        NSLog(@"NO DATA HAS BEEN FETCHED,ERROR = %@",error);

    }else{

        NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
        NSArray *yourResponseArray = [json objectForKey:@"YOUR RESPONSE KEY"];

        NSLog("YOU RESPONSE IS = %@",yourResponseArray);

    }

}


@end

応答からのデータを表示するには、データが NSArray に格納されていることに注意してください。そのため、cellForRowAtIndexPathで次のメソッドを使用します。

-(UITableViewCell *)tableView:(UITableView *)myTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    //initialize your cells normally and to display the data from your response use
    NSDictionary *yourSpecificData = [yourResponseArray objectAtIndex:[indexPath row]];

    //and finally display some text in the cell
    cell.textLabel.text = [yourSpecificData objectForKey:@"SOME KEY FROM RESPONSE"];

}
于 2012-10-10T01:19:18.017 に答える
0

ios5 で「 NSJsonSerialization 」を使用できます。コードを表示

-(void) parseJsonData:(NSData *)data
{
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    if (json == nil) {
        NSLog(@"json parse failed \r\n");
        return;
    }
    NSArray *songArray = [json objectForKey:@"song"];
    NSLog(@"song collection: %@\r\n",songArray);

    _song = songArray;
    self.songIndex = 0;
    NSDictionary *song = [songArray objectAtIndex:0];
    NSLog(@"song info: %@\t\n",song);

}

于 2012-10-10T02:39:35.133 に答える