簡體   English   中英

使用目標C解析JSON?

[英]parsing JSON using objective C?

我花了1周的時間研究目標C。現在,我對處理數據部分感到很困惑。 我的朋友給了我一個鏈接http://nrj.playsoft.fr/v3/getQuiz.php?udid=23423455&app=2,並請我編寫一個類來解析此JSON。 我不知道解析JSON意味着什么。 但是我上網了,抬頭了。 我了解了它的基礎知識,然后添加了一堆代碼來解析此JSON。 這是:

-

(void)parseURL
{
    //create new SBJSON object 
    SBJSON *parser = [[SBJSON alloc] init];
    NSError *error = nil;
    //perform request from URL 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://nrj.playsoft.fr/v3/getQuiz.php?udid=23423455&app=2"]];
    // Perform request and get JSON back as a NSData object
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];

    // Get JSON as a NSString from NSData response
    NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

    // parse the JSON response into an object

    NSDictionary *results = [parser objectWithString:json_string error:&error];
    // array just for the "answer" results
    NSArray *quizes = [results objectForKey:@"quiz"];

    NSDictionary *firstQuiz = [quizes objectAtIndex:0];
    // finally, the name key
    NSString *extract = [firstQuiz objectForKey:@"extract"];
    NSLog(@"this is: %@", [extract valueForKey:@"extract"]); 

}

這是在實現文件中,但是在頭文件中,我無法聲明任何變量,它將打印出一些錯誤。 我嘗試運行此代碼,沒有錯誤,但是我不確定此代碼是否正確。 我的朋友要我在現有項目中寫一個類。 我不知道需要修改什么,不需要修改什么。 我現在很模糊。 任何人都可以幫助我。 衷心的感謝。


謝謝您的回復。 我已經下載並添加了JSON框架。 我只是不確定從哪里開始和從哪里結束,這意味着當我向其中添加JSON框架時應該執行的步驟。 我可以理解語法,但是不確定應該執行的步驟。 我是這個新手。

如果您支持iOS 5.0+,則應使用內置的NSJSONSerialization 比TouchJSON快

您可以只使用TouchJSON: http : //code.google.com/p/touchcode/wiki/TouchJSON

或者,您可以使用以下網址http : //code.google.com/p/json-framework/

我敢肯定還有其他人。 我使用的是TouchJSON ...它速度很快,並且具有良好的API。

我建議您閱讀Ray Wenderlich的MapKit教程,特別是如果您是新手。 它涵蓋了幾個常見的iOS開發問題,包括解析JSON數據。

http://www.raywenderlich.com/2847/introduction-to-mapkit-on-ios-tutorial

在“實現”部分中,檢索其JSON提要,然后在“繪制數據”中,使用SBJson庫對其進行解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM