我正在尝试使用 JSON 数据提取“points”元素的值
NSString* encodedPoints = [apiResponse stringByMatching:@"points:\\\"([^\\\"]*)\\\"" capture:1L];
但是JSON数据中的“点”元素不止一个。请帮助我,我不太了解正则表达式。 我正在从 this link 获取 JSON 数据
最佳答案
您应该使用 JSON 扫描器。
确保您在 NSString
中拥有 JSON,而不是 NSData
。
这是一个使用 NSScanner
而不是正则表达式的方法:
NSMutableArray *pointList = [NSMutableArray array];
NSString *pointsString;
BOOL success = YES;
NSScanner *scanner = [NSScanner scannerWithString:encodedPoints];
while (YES) {
success = [scanner scanUpToString:@"points:\"" intoString:nil];
success = [scanner scanString:@"points:\"" intoString:nil];
if (success == NO)
break;
success = [scanner scanUpToString:@"\"" intoString:&pointsString];
[pointList addObject:pointsString];
}
// Show results by print lengths of the found points
for (NSString *point in pointList)
NSLog(@"point length: %i", point.length);
NSLog输出:
point length: 22058
point length: 8889
关于iphone - 如何使用 RegEx 从 JSON 数据中提取元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445139/