2013-05-03 107 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