从NSDictionary获取值
嗨,我是新的iOS开发。 我想获得回应,并将这些值添加到variables。
我尝试过,但我得到的答复。 我不明白为什么会有这样的反应。
@"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]"
我试过这个:
- (void) sendOtherActiveChats:(NSDictionary *) chatDetails{ NSLog(@"inside sendOtherActiveChats"); NSLog(@"otherDetails Dictionary : %@ ", chatDetails); NSString *VisitorID = [chatDetails objectForKey:@"VisitorID"]; NSString *ProfileID = [chatDetails objectForKey:@"ProfileID"]; NSString *CompanyID = [chatDetails objectForKey:@"CompanyID"]; NSString *VisitorName = [chatDetails objectForKey:@"VisitorName"]; NSString *OperatorName = [chatDetails objectForKey:@"OperatorName"]; NSString *isocode = [chatDetails objectForKey:@"isocode"]; NSLog(@"------------------------Other Active Chats -----------------------------------"); NSLog(@"VisitorID : %@" , VisitorID); NSLog(@"ProfileID : %@" , ProfileID); NSLog(@"CompanyID : %@" , CompanyID); NSLog(@"VisitorName : %@" , VisitorName); NSLog(@"OperatorName : %@" , OperatorName); NSLog(@"countryCode: %@" , isocode); NSLog(@"------------------------------------------------------------------------------"); }
有人能帮我从这个string中获取值吗?
你得到的字典数组作为响应,但你的响应是string,所以你把它转换成NSArray
使用NSJSONSerialization
这样的方式,将您的响应string转换为NSData
,然后使用JSONObjectWithData:
使用该数据JSONObjectWithData:
从中获取数组。
NSString *jsonString = @"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]"; NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *e; NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&e];
现在循环访问数组,并从中访问每个字典。
for (NSDictionary *dic in jsonArray) { NSLog(@"%@",[dic objectForKey:@"VisitorID"]); ... and so on. }
首先你需要parsing你的string。
NSString *aString = @"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]"; NSData *data = [aString dataUsingEncoding:NSUTF8StringEncoding]; id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSLog(@"%@",[[json objectAtIndex:0] objectForKey:@"VisitorID"]);
所以你有JSON
string和2个对象的array
。 所以写下面的代码
这会将JSON
string转换为Array
NSData *myJSONData = [YOUR_JSON_STRING dataUsingEncoding:NSUTF8StringEncoding]; NSError *error; NSMutableArray *arrayResponse = [NSJSONSerialization JSONObjectWithData:myJSONData options:NSJSONReadingMutableContainers error:&error];
现在使用循环和打印数据为
for (int i = 0; i < arrayResponse.count; i++) { NSDictionary *dictionaryTemp = [arrayResponse objectAtIndex:i]; NSLog(@"VisitorID : %@",[dictionaryTemp valueForKey:@"VisitorID"]); NSLog(@"ProfileID : %@",[dictionaryTemp valueForKey:@"ProfileID"]); NSLog(@"CompanyID : %@",[dictionaryTemp valueForKey:@"CompanyID"]); NSLog(@"VisitorName : %@",[dictionaryTemp valueForKey:@"VisitorName"]); }
现在有很好的机会,你会得到NULL的一些键,它可能导致崩溃。 所以通过使用空validation来避免这些崩溃。
- 以编程方式设置UITabBarItem标题?
- UIWebView将Objective C公开到JavaScript
- dynamicUITableView在静态UITableViewCell中
- 苹果是否修改了提交给App Store的应用程序上的iOS应用程序可执行文件?
- 用于iBeacon设备的UUID,主要,次要设置
- iOS在应用程序购买:testing一个真正的购买,而不提交给苹果
- 如何从头开始创建iTunes Samples Player? (第2部分)
- 我想保存的应用程序,所以当用户退出,uitextfields不会擦除文本时,用户回来
- 如何使用UISearchBar过滤类型]的数组并显示为String