[解決済み] URLの文字列を解析してキーの値を取得する最良の方法とは?
2023-05-28 22:45:58
質問
このようなURL文字列をパースする必要があります。
&ad_eurl=http://www.youtube.com/video/4bL4FI1Gz6s&hl=it_IT&iv_logging_level=3&ad_flags=0&endscreen_module=http://s.ytimg.com/yt/swfbin/endscreen-vfl6o3XZn.swf&cid=241&cust_gender=1&avg_rating=4.82280613104
のようにNSStringを記号の部分に分割する必要があります。
cid=241
と
&avg_rating=4.82280613104
. 私はこれまで、このように
substringWithRange:
でやっていますが、値はランダムな順序で返されるので、それは台無しになります。基本的にNSDictionaryに変換して、キーに対する値を読むことができるような、簡単にパースできるクラスはありますか(例えば、ValueForKey:
cid
を返すべき
241
). あるいは、それを解析するために
NSMakeRange
を使用して部分文字列を取得するよりも簡単な方法ですか?
どのように解決するのですか?
を編集しました(2018年6月)。
この答えの方が良い
. アップルが追加した
NSURLComponents
を iOS 7 で追加しました。
.
辞書を作成し、キーと値のペアを配列で取得して
NSMutableDictionary *queryStringDictionary = [[NSMutableDictionary alloc] init];
NSArray *urlComponents = [urlString componentsSeparatedByString:@"&"];
次に、辞書に入力します。
for (NSString *keyValuePair in urlComponents)
{
NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="];
NSString *key = [[pairComponents firstObject] stringByRemovingPercentEncoding];
NSString *value = [[pairComponents lastObject] stringByRemovingPercentEncoding];
[queryStringDictionary setObject:value forKey:key];
}
でクエリすることができます。
[queryStringDictionary objectForKey:@"ad_eurl"];
これは未検証なので、もっとエラーテストをしたほうがいいでしょう。
関連
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] 文字列の長さを取得する
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み】C++で文字列区切り文字を使ったパース(分割)(標準C++)について)
-
[解決済み】URI文字列をパースして名前-値コレクションを作成する方法
-
[解決済み】.NETで文字列からURLのパラメータを取得する
-
[解決済み] Objective-CでNULL文字列をチェックする正しい方法は何ですか?
-
[解決済み】Swift Stringの文字を置換する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] NSURLクエリプロパティの解析