日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Objective-C中把URL请求的参数转换为字典

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Objective-C中把URL请求的参数转换为字典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 上一篇博客中是把URL轉換為字典,那么我們如何把URL請求中的參數封裝成字典,然后再封裝成數組呢?對OC中字符串操作熟練的小伙伴們應該覺得這是一個a+b的問題,沒錯把URL中的參數轉換為字典主要是對字符串的截取,關鍵是怎么個截法,才能把字符串中的參數列表分別轉換成鍵值對。下面是小菜自己的轉換思路,如果有更好的結局方法還請批評指正,相互學習交流一下,轉載請注明出處。

????????首先我們得會一個字符串拆分函數?componentsSeparatedByString:@"&",把字符串按照&進行拆分,然后返回字符串數組

??????????輸入的數據的格式如下(裝有url的字符串數組):

1 2 3 4 5 ( ????"http://www.baidu.com?a=10&b=20", ????"http://www.baidu.com?a=10&b=20&c=30", ????"http://www.baidu.com?a=10&c=30" )

??????????接下來就是要把每個url中的參數列表轉換成字典,主要代碼如下:

???????????????代碼說明:

????????????????????1.先把參數列表在url中的參數列表的起始位置獲取到,通過方法rangeOfString方法獲取

????????????????????2.位置獲取到以后我們可以把參數列表從url字符串中提取出來,通過substringFromIndex來獲取。

????????????????????3.通過componentsSeparatedByString把參數列表進行每項的拆分

????????????????????4.通過componentsSeparatedByString把每項進行鍵值對的拆分

????????????????????5.把鍵值對存入字典

????????????????????5.把字典存入數組

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 NSMutableArray * dataArray() { ????//用來作為函數的返回值,數組里里面可以存放每個url轉換的字典 ????NSMutableArray *arrayData = [NSMutableArray arrayWithCapacity:4]; ????? ????//獲取數組,數組里裝得是url ????NSMutableArray *arrayURL = appendURL(); ????NSLog(@"獲取到得URL數組如下:\n%@", arrayURL); ????? ????//循環對數組中的每個url進行處理,把參數轉換為字典 ????for?(int?i = 0; i < arrayURL.count; i ++) ????{ ????????NSLog(@"第%d個URL的處理過程:%@", i+1, arrayURL[i]); ????????? ????????//獲取問號的位置,問號后是參數列表 ????????NSRange range = [arrayURL[i] rangeOfString:@"?"]; ????????NSLog(@"參數列表開始的位置:%d", (int)range.location); ????????? ????????//獲取參數列表 ????????NSString *propertys = [arrayURL[i] substringFromIndex:(int)(range.location+1)]; ????????NSLog(@"截取的參數列表:%@", propertys); ????????? ????????//進行字符串的拆分,通過&來拆分,把每個參數分開 ????????NSArray *subArray = [propertys componentsSeparatedByString:@"&"]; ????????NSLog(@"把每個參數列表進行拆分,返回為數組:\n%@", subArray); ????????? ????????//把subArray轉換為字典 ????????//tempDic中存放一個URL中轉換的鍵值對 ????????NSMutableDictionary *tempDic = [NSMutableDictionary dictionaryWithCapacity:4]; ????????? ????????for?(int?j = 0 ; j < subArray.count; j++) ????????{ ????????????//在通過=拆分鍵和值 ????????????NSArray *dicArray = [subArray[j] componentsSeparatedByString:@"="]; ????????????NSLog(@"再把每個參數通過=號進行拆分:\n%@", dicArray); ????????????//給字典加入元素 ????????????[tempDic setObject:dicArray[1] forKey:dicArray[0]]; ????????} ????????NSLog(@"打印參數列表生成的字典:\n%@", tempDic); ????????[arrayData addObject:tempDic]; ????} ????NSLog(@"打印參數字典生成的數組:\n%@", arrayData); ????? ????return?arrayData; }

?

??????????上面代碼具體的執行步驟:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2014-08-12 13:46:14.126 HelloOC[1195:303] 第1個URL的處理過程:http://www.baidu.com?a=10&b=20 2014-08-12 13:46:14.126 HelloOC[1195:303] 參數列表開始的位置:20 2014-08-12 13:46:14.126 HelloOC[1195:303] 截取的參數列表:a=10&b=20 2014-08-12 13:46:14.127 HelloOC[1195:303] 把每個參數列表進行拆分,返回為數組: ( ????"a=10", ????"b=20" ) 2014-08-12 13:46:14.127 HelloOC[1195:303] 再把每個參數通過=號進行拆分: ( ????a, ????10 ) 2014-08-12 13:46:14.127 HelloOC[1195:303] 再把每個參數通過=號進行拆分: ( ????b, ????20 ) 2014-08-12 13:46:14.128 HelloOC[1195:303] 打印參數列表生成的字典: { ????a = 10; ????b = 20; }

?

轉載于:https://www.cnblogs.com/ludashi/p/3907125.html

總結

以上是生活随笔為你收集整理的Objective-C中把URL请求的参数转换为字典的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。