我做了很多很多时间。但是当我尝试从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' }]
现在,从上面我想要获取 UserID 等等,我只是编码
NSString *abc = [dicResponse objectForKey:@"UserID"];
但它给我的错误就像
- [__ NSCFString objectForKey:]:无法识别的选择器发送到实例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];
给了我与上一次相同的东西。
如何移除“正如迈克威勒建议。
答案 0 :(得分:3)
错误告诉您dicResponse
实际上是一个字符串。
这意味着SelectUserDataResult
键有一个字符串值,可以在您发布的数据中看到,因为SelectUserDataResult
的值被双引号括起来。
从"
移除周围的SelectUserDataResult
,您的代码应该可以使用。
如果您从外部源获取此字符串为JSON,则必须使用NSJSONSerialization
答案 1 :(得分:0)
您必须使用JSON解析器来解析字符串,但由于您的字符串是使用单引号生成的,因此JSON需要使用双引号,因此首先您必须在服务器端或本地端更改此更改以替换所有单引号加倍但这不是一个好的选择。
用于解析访问以下链接