ホームページ > ウェブフロントエンド > jsチュートリアル > URL パラメータを JavaScript オブジェクトに変換するにはどうすればよいですか?

URL パラメータを JavaScript オブジェクトに変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-04 22:56:02
オリジナル
526 人が閲覧しました

How to Convert URL Parameters to a JavaScript Object?

URL パラメータを JavaScript オブジェクトに変換する方法

Web アプリケーションを使用する場合、パラメータを含む URL に遭遇することがよくあります。これらのパラメータには、JavaScript コード内でアクセスしたい追加情報を含めることができます。これを行うには、URL パラメータを JavaScript オブジェクトに変換する必要があります。

ワンライナー ソリューション

次のワンライナーは、迅速かつ簡単な解決策を提供します。 URL パラメータをオブジェクトに変換する方法:

<code class="javascript">JSON.parse('{&quot;' + decodeURI("abc=foo&amp;def=%5Basf%5D&amp;xyz=5".replace(/&amp;/g, "&quot;,&quot;").replace(/=/g, "&quot;:&quot;")) + '&quot;}')</code>
ログイン後にコピー

ステップバイステップの内訳

このソリューションをステップごとに詳しく見てみましょう:

  1. Decode URI: この手順により、URL パラメーター内のエスケープ文字が適切にデコードされます。たとえば、「&」は「&」にデコードされます。
  2. エスケープ引用符: URL パラメータ内の二重引用符はすべて、「"」を使用してエスケープする必要があります。これにより、次のような場合に構文エラーが発生するのを防ぎます。 JSON オブジェクトを解析します。
  3. 「&」を「","": に置き換えます。URL パラメーター内の「&」記号はキーと値のペアを表します。ただし、JSON ではこれらがキーと値のペアである必要があります。 ""," (二重引用符内のカンマ) で区切られます。
  4. "= を "":"": に置き換えます。URL パラメーター内の "= 記号は、キーと値を区切ります。有効な JSON オブジェクトを作成するには、これらを "":"" に置き換える必要があります。
  5. 中括弧と引用符で囲む: 最後に、文字列全体が中括弧と二重引用符で囲まれます。

Reviver Function

ワンライナー ソリューションでほとんどのシナリオが処理されますが、「」のような特定の文字で問題が発生する可能性があります。 URL パラメーターに %" を含めます。これに対処するには、JSON オブジェクトを解析するときに reviver 関数を使用できます。

<code class="javascript">JSON.parse('{&quot;' + search.replace(/&amp;/g, '&quot;,&quot;').replace(/=/g,'&quot;:&quot;') + '&quot;}', function(key, value) { return key===&quot;&quot;?value:decodeURIComponent(value) })</code>
ログイン後にコピー

この reviver 関数は、各キーの値を返す前に URI デコードを実行し、すべての文字が適切に処理されるようにします。

使用例

これらの解決策のいずれかを使用するには、「abc=foo&def=[asf]&xyz=5」を変換する実際の URL パラメータに置き換えるだけです。出力は、必要に応じてアクセスして操作できる JavaScript オブジェクトになります。

以上がURL パラメータを JavaScript オブジェクトに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート