我一直在为 iOS 的谷歌地图定制路线。
如何解析 LINESTRING 中的传入 JSON?
我的线路:
"coordInfo": "LINESTRING (28.646751729297 40.9993029074749, 28.6470087874434 40.9995465119554, 28.6470087874434 40.9995465119554, 28.6474633603416 41.0000088561426)"
},
从您发布的内容看来, 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);
}