[转]将a=1&b=2&c=3 格式字符串转换成字典(解析地址里面各参数值

最近在做支付宝支付,返回值里的一些参数是a=1&b=2&c=3 格式字符串

不方便使用 于是找到了这个方法



- (NSDictionary*)dictionaryFromQuery:(NSString*)query usingEncoding:(NSStringEncoding)encoding {

NSCharacterSet* delimiterSet = [NSCharacterSetcharacterSetWithCharactersInString:@"&;"];

NSMutableDictionary* pairs = [NSMutableDictionarydictionary];

NSScanner* scanner = [[NSScanneralloc]initWithString:query];

while(![scannerisAtEnd]) {

NSString* pairString =nil;

[scannerscanUpToCharactersFromSet:delimiterSetintoString:&pairString];

[scannerscanCharactersFromSet:delimiterSetintoString:NULL];

NSArray* kvPair = [pairStringcomponentsSeparatedByString:@"="];

if(kvPair.count==2) {

NSString* key = [[kvPairobjectAtIndex:0]

stringByReplacingPercentEscapesUsingEncoding:encoding];

NSString* value = [[kvPairobjectAtIndex:1]

stringByReplacingPercentEscapesUsingEncoding:encoding];

[pairssetObject:valueforKey:key];

}

}

return[NSDictionarydictionaryWithDictionary:pairs];

原文链接 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容