0

我一直在为 iOS 的谷歌地图定制路线。

如何解析 LINESTRING 中的传入 JSON?

我的线路:

"coordInfo": "LINESTRING (28.646751729297 40.9993029074749, 28.6470087874434 40.9995465119554, 28.6470087874434 40.9995465119554, 28.6474633603416 41.0000088561426)"
    },
4

1 回答 1

1

从您发布的内容看来, objectForKey@"coordInfo" 为您提供了一个带有括号中数字的字符串。您可以使用 NSString 方法 componentsSeparatedByCharactersInSet 对其进行解析:传递包含左右括号、逗号和空格的集合以生成单个数字字符串的数组(以及单词“LINESTRING”作为数组中的第一个字符串) . 该数组还将包含一些空字符串,其中 2 个分隔字符在一起(如逗号和空格),因此在将对象从数组中取出时必须对其进行测试。

你也可以像这样使用 NSScanner:

NSString *toParse = @"LINESTRING (28.646751729297 40.9993029074749, 28.6470087874434 40.9995465119554, 28.6470087874434 40.9995465119554, 28.6474633603416 41.0000088561426)";
    NSScanner *scanner = [NSScanner scannerWithString:toParse];
    double num;
    while (! [scanner isAtEnd]) {
      [scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:nil];
      [scanner scanDouble:&num];
      // put numbers into an array here or use them somehow
      NSLog(@"%f",num);
    }
于 2012-08-13T16:43:13.303 回答