iphone - 如何使用 RegEx 从 JSON 数据中提取元素的值

标签 iphone ios regex

我正在尝试使用 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/

相关文章:

java - Java 正则表达式中的新行和美元符号

node.js - MongoDB ReDOS 测试

android - 缩放 html 电子邮件以适应移动屏幕而无需滚动(android/iOS)

iphone - UIPageviewController PDF

python - 如何在 python 中拆分运算符和操作数

ios - 对 header 中的 UIViewController 属性感到困惑

ios - 适当的线程处理

iphone - Coremotion 加速度始终为零!

iphone - 我怎么知道我需要多少个 socket ?

ios - 快速从 UILocalNotification 迁移到 UNUserNotification