2013-05-03 262 views
-1

我已經做了很多很多的事情。但我不知道爲什麼當我試圖從NSDictionary中獲取它時,我無法弄清楚這個對象有什麼問題。無法從nsdictionary中獲取對象...?

我有NSMutableArray對象,它有下面的數據。

( { SelectUserDataResult = "[{ 'UserID': '3D5CC4E6-25E8-4591-A84A-6BD7D020DB17', 'ClientID': '895D7BE5-B5D0-48AE-8AAB-6863FCD1D5BF', 'TimeZoneCulture_Term': 'en-US', 'Currency_Term': 'GBP', 'LoginLogID': 'c76960b1-aa24-454f-9fe7-f4f3960fefd4' }]"; } )

現在我取我的第一個對象像

NSDictionary *dicResponse = [[[NSDictionary alloc]initWithDictionary:(NSDictionary *)[data objectAtIndex:0]] objectForKey:@"SelectUserDataResult"]; 
NSLog(@"%@",dicResponse); 

[{ 'UserID': '3D5CC4E6-25E8-4591-A84A-6BD7D020DB17', 'ClientID': '895D7BE5-B5D0-48AE-8AAB-6863FCD1D5BF', 'TimeZoneCulture_Term': 'en-US', 'Currency_Term': 'GBP', 'LoginLogID': 'c76960b1-aa24-454f-9fe7-f4f3960fefd4' }]

現在,從上面我想取用戶名和其他東西,所以,我就跟

NSString *abc = [dicResponse objectForKey:@"UserID"]; 

代碼但它給我錯誤,如

-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x7a70200

找不到我錯在哪裏。

感謝

========= 部分-2

我只是奶源來改變我的NSMutableArray對象數據如下

( "[{ 'UserID': '3D5CC4E6-25E8-4591-A84A-6BD7D020DB17', 'ClientID': '895D7BE5-B5D0-48AE-8AAB-6863FCD1D5BF', 'TimeZoneCulture_Term': 'en-US', 'Currency_Term': 'GBP', 'LoginLogID': 'c76960b1-aa24-454f-9fe7-f4f3960fefd4' }]" )

NSDictionary *dicResponse = (NSDictionary *)[data objectAtIndex:0]; 

給我與上次一樣。

如何刪除「爲mikeweller建議。

+0

但是,這是數組作爲字符串如何u得到使用「objectForkey」 – 2013-05-03 08:57:37

+0

感謝Hamdullah沙阿,PLZ檢查其他答案更新的代碼和註釋店,如果你幫我,我會很開心......!? – 2013-05-03 11:19:48

+0

檢查服務器端JSON是否正確創建,因爲JSON使用雙引號而不是單個引號。 http://json.parser.online.fr – 2013-05-03 11:22:49

回答

0

它來解碼你必須使用JSON解析器來解析字符串,但作爲一個字符串使用單引號生成,JSON需要使用雙引號,所以首先你必須在服務器端或本地端更改所有單引號,但這不是一個好的選擇。

解析,請訪問以下鏈接

http://json.parser.online.fr

+0

感謝標記服務器端問題引用...!?! – 2013-05-03 12:07:34

3

錯誤是告訴你,dicResponse實際上是一個字符串。

這意味着SelectUserDataResult鍵都有一個字符串值,它可以在數據中可以看出你因爲貼SelectUserDataResult的價值是由雙引號括起來。

取下SelectUserDataResult周圍"和你的代碼應該工作。

如果從外部源獲得此字符串作爲JSON你必須使用NSJSONSerialization

+0

感謝您的回覆,請檢查第2部分更新的同一問題。 – 2013-05-03 10:43:30

+0

您的更新代碼仍然包含所有內容。 – 2013-05-03 10:47:18

+0

實際上,該字符串來自Web服務,並且我以** [initWithObjects] **的形式將數組存儲爲數組,如何將其刪除。 – 2013-05-03 10:48:32