2015-10-20 26 views
0

我有NSString這樣我想只讀(我這裏)這一部分,我該怎麼辦,我在這裏是一個變量的iOS,讀指定的NSString的一部分與rangeOfString或NSMutableArray的

[[["OK'","ok'","","OK'",0]],,"AB",,[["hello'",[1],YES,YES,100,0,4,0]],[["ok '",1,[["okidoki '",100,yes,yes]],[[0,3]],"okdoki'"]],,[,"I am here",[4]],[["AB"]],3] 
+0

這是什麼字符串?它真的是一個NSString?你在哪裏得到它? – Larme

+0

我得到它與一個NSString * jsonreturn = [request responseString]; – user2296278

+0

'responseString'?爲什麼要管理'responseString'而不是JSON(NSArray或NSDictionary)? – Larme

回答

2

試試這個代碼。 使用regrular表達式我們解析[]中的子串。經過分割字符串後,

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\[(.*?)\\]" options:NSRegularExpressionCaseInsensitive error:NULL]; 
NSString *test = @"[[[\"OK\",\"ok\",\"\",\"OK\",0]],,\"AB\",,[[\"hello\",[1],YES,YES,100,0,4,0]],[[\"ok\",1,[[\"okidoki\",100,yes,yes]],[[0,3]],\"okdoki\"]],,[,\"I am here\",[4]],[[\"AB\"]],3]"; 
NSString *input = test; 
NSArray *myArray = [regex matchesInString:input options:0 range:NSMakeRange(0, [input length])] ; 

NSMutableArray *matches = [NSMutableArray arrayWithCapacity:[myArray count]]; 

NSRange matchRange = [myArray[4] rangeAtIndex:1]; 
[matches addObject:[input substringWithRange:matchRange]]; 
NSString *elementString = [matches lastObject]; 
NSArray *listItems = [elementString componentsSeparatedByString:@","]; 
NSLog(@"I'm here: %@", listItems[1]);