Ios 如何在字符串中的第三个和第四个分隔字符之间获得子字符串?

Ios 如何在字符串中的第三个和第四个分隔字符之间获得子字符串?,ios,objective-c,Ios,Objective C,我正在使用API创建一些图像。当我发出HTTP请求时,返回的字符串如下: {"img": "?svg=mscfP39TT", "errors": [],"naturalWidth": 199.671,"actualWidth": 199.671} 如果我将?svg=mscfP39TT附加到站点的URL,它将显示图像。为了获得此子字符串,我目前正在执行以下操作: NSArray *splitStrings = [imgLoc componentsSeparatedByString:@"\""];

我正在使用API创建一些图像。当我发出HTTP请求时,返回的字符串如下:

{"img": "?svg=mscfP39TT", "errors": [],"naturalWidth": 199.671,"actualWidth": 199.671}
如果我将
?svg=mscfP39TT
附加到站点的URL,它将显示图像。为了获得此子字符串,我目前正在执行以下操作:

NSArray *splitStrings = [imgLoc componentsSeparatedByString:@"\""];
NSString *URL = [@"site.com/" stringByAppendingString:[splitStrings objectAtIndex:3]];
我很好奇,是否有更好或更有效的方法在不涉及数组的情况下实现这一点?我知道我只想要那一个子串,其余的对我没用。有没有办法将字符串从第三个
子串到第四个


我在分析我要查找的内容时遇到了问题,如果这是一个重复的内容,那么很抱歉。

您应该使用
NSJSONSerialization
类来解析它,而不是对返回的确切字符串进行黑客攻击和假设,因为它似乎是有效的JSON

NSData *strData = [stringResponse dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:strData options:kNilOptions error:NULL];
NSString *query = [dict objectForKey:@"img"];
NSString *urlStr = [@"site.com/" stringByAppendingString:query];

您应该使用
NSJSONSerialization
类来解析它,而不是对返回的确切字符串进行黑客攻击和假设,因为它似乎是有效的JSON

NSData *strData = [stringResponse dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:strData options:kNilOptions error:NULL];
NSString *query = [dict objectForKey:@"img"];
NSString *urlStr = [@"site.com/" stringByAppendingString:query];

请阅读常见的基于web的数据传输格式。如果你真的想与任何web后端进行交互,你应该识别JSON、XML、Base64编码数据、URL百分比转义等。为什么这个问题被否决了?当然,从某种意义上说,这是一个初学者的问题。这没有错。从技术上讲,它不是重复的——尽管如此有很多这样的问题。OP比我们在这里遇到的至少一半的问题都要努力。我对它投了更高的票,不是因为我认为它值得投更高的票——它不是那么好——而是为了避免不公平的否决票。H2CO3给出了一个很好的建议(不仅仅是针对OP)基于这个问题。@rokjarc@H2CO3:我从很多角度知道这是错误的,但不是从所有角度都知道。事实上,Grace Note(你链接中接受答案的一部分)说:“只要选民支持投票,我就同意。”。“请仔细阅读常见的基于网络的数据传输格式。如果你真的想与任何web后端交互,你应该识别JSON、XML、Base64编码数据、URL百分比转义等。为什么这个问题被否决了?当然,这在某种程度上是一个初学者的问题。这没什么错。从技术上讲,它不是一个复制品——尽管有很多这样的问题。OP比我们在这里遇到的至少一半问题都要努力。我投了更高的票,不是因为我认为它值得投更高的票——这不太好——而是为了避免不公平的否决票。基于这个问题,H2CO3给出了一个很好的建议(不仅仅是针对OP)。@rokjarc@H2CO3:我知道从很多角度来看这是错误的,但不是从所有角度来看都是错误的。事实上,Grace Note(你的链接中被接受的答案的OP)说:“只要选民支持投票,我就可以接受。”几周前,我匆忙地把这段代码拼凑在一起,并注意到了这一点。我应该回溯更多,网站上使用API的帮助页面甚至告诉我它返回JSON。令人尴尬的谢谢你的帮助。几周前我匆忙地把这段代码拼凑起来,刚刚注意到。我应该回溯更多,网站上使用API的帮助页面甚至告诉我它返回JSON。令人尴尬的谢谢你的帮助。