2012-12-14 70 views
-1
NSDictionary *rData = (NSDictionary *) [jParser objectWithString:responseString error:nil]; 

rData應該是一個NSDictionary對象。但它看起來像一系列字典。 然後我使用 [[rData allKeys] objectAtIndex:0]訪問詞典的第一個關鍵。但它崩潰說[NSArrayM allKeys]無法識別的選擇器。SBJson解析器應該給字典對象,但給NSArray對象

+0

什麼是你的問題?並且,請分享您嘗試解析的JSON字符串。 – driis

+0

JSON返回一個字典數組並不罕見。正如其他人指出的那樣,它只取決於你的JSON,你必須與我們分享。但是簡單地將'jParser'結果作爲'NSDictionary *'結果並不是一個字典。這是JSON數據本身的功能。 – Rob

+0

數組沒有allKeys方法,這就是爲什麼你會收到該錯誤消息。要訪問第一個字典,只需使用rData [0]。 – rdelmar

回答

0

JSON數據可以是一個數組或在頂層的字典。如果你的JSON以{開頭,那麼它將是一個字典。如果它以a開頭[那麼它將是一個數組。

0

你約你收到什麼類,100%?

關於objectWithString

此方法其輸入轉換到包含UTF8和 呼叫-objectWithData的NSData對象:它。

返回:的NSArray的NSDictionary由對象表示,或零 如果發生錯誤。

嘗試調試這一點。你有兩個(至少!)選項:

NSLog(@"%@",[rData class]); 

NSLog(@"%@",[[jParser objectWithString:responseString error:nil] class]); 

或者乾脆在輸出:

po [[jParser objectWithString:responseString error:nil] class];