簡體   English   中英

iPhone無法解析YELP的JSON結果

[英]iPhone unable to parse JSON results from YELP

我正在嘗試從yelp搜索結果中解析經過驗證的JSON。

這可以按預期正確吐出json(在模擬器瀏覽器和我自己的容器中確認)。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    NSString *dump = [[[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding] autorelease];

    NSLog(@"Did Recieve data: %@",  dump);
    [JSONData appendData:data];
}

但是,當我的連接加載完成時,我很難提取結果並解析數據:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{   
    NSLog(@"Connection Did Finish Loading");

    NSError *error = nil;
    id cureLocations = [[CJSONDeserializer deserializer] deserializeAsDictionary:JSONData error:&error];
    [JSONData release];

    NSLog(@"Connection finished loading: %@", error);
}

我得到:連接加載完成:錯誤域= CJSONDeserializerErrorDomain代碼= -11“操作無法完成。(CJSONDeserializerErrorDomain錯誤-11。)”

我從SBJSON切換到TouchJSON,因為我也無法從該框架中提取它。 我嘗試將其加載到Dictionary和Arrays中,結果為null。 此時,我已經在鍵盤上敲打了幾個小時,不勝感激。

JSON樣本

更新:

我是假人 我沒有初始化JSONData。 請接受浪費您的時間表示歉意,並感謝您的建議。

SBJSON是一個相當不錯的解析器。 如果它不解析您的輸入,您可能會認為是因為輸入確實很糟糕。 如果TouchJSON也未解析,則輸入肯定是錯誤的。 因此,與您有關的JSONData對象有些不JSONData

我建議您使用connectionDidFinishLoading方法將JSON數據打印到控制台,然后嘗試重新驗證它。 查看要傳遞給CJSON的數據對象中的實際內容。

gh,在進一步審查了應用程序之后,我似乎急着將樣本復制到該項目中,卻忘記了初始化JSONData:

self.JSONData = [[[NSMutableData alloc] init]autorelease];

然后,我更新了didReceiveData方法:

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [[self JSONData] appendData:data];
}

現在一切都按預期進行。 這是我第二次遇到此錯誤。 我想我一直期望調試器來接它。 感謝大家的時間和幫助。

暫無
暫無

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

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