[英]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。 此時,我已經在鍵盤上敲打了幾個小時,不勝感激。
我是假人 我沒有初始化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.