DataPrime: URL デコード/エンコード

このガイドでは、URLのエンコードとデコードのための IBM® Cloud Logs DataPrime URL 関数の用語集を提供します。

urlDecode と urlEncode は、関数とメソッド表記をサポートしている。

urlEncode

urlEncode を使って、文字をインターネットで送信できる形式に変換する。

インターネットで URL を送信するには、 URL をASCII文字セットで設定する必要があります。 例えば、一連の文字をエンコードし、空白を %20 で置き換える必要があるかもしれません。

関数

urlEncode(string: string): string

例えば、次のサンプルを使って、 query_string_parameters.name の値を関数でエンコードすることができる:

replace query_string_parameters.name with urlEncode(query_string_parameters.name)

メソッド

string: string.urlEncode(): string

例えば、以下のサンプルを使って、 query_string_parameters.name の値をメソッドでエンコードすることができる:

replace query_string_parameters.name with query_string_parameters.name.urlEncode()

urlDecode

URL を使いやすい形式に変換するには、 urlDecode を使用します。

関数

urlDecode(string: string): string

例えば、以下のサンプルを使って、 query_string_parameters.name の値を関数でデコードすることができる:

replace query_string_parameters.name with urlDecode(query_string_parameters.name)

メソッド

string: string.urlDecode(): string

例えば、以下のサンプルを使って、 query_string_parameters.name の値をメソッドを使ってデコードすることができる:

replace query_string_parameters.name with query_string_parameters.name.urlDecode()

例 URL ヘッダーパラメーターをJSONオブジェクトに変換し、 URL デコードする

次のログラインを考えてみよう:

{
  "domain": "https://www.ibm.com",
  "path": "/home",
  "query_string": "name=My%20Name&b=c%20d&c=d"
}

まず、各クエリー文字列パラメーターを独自のオブジェクト・フィールドに抽出する。

extract query_string into query_string_parameters using kv(pair_delimiter='&',key_delimiter='=')

出来上がった文書は次のようになる:

{
  "domain":"https://www.ibm.com",
  "query_string":"name=My%20Name&b=c%20d&c=d",
  "path": "/home",
  "query_string_parameters":{
    "name":"My%20Name",
    "b":"c%20d",
    "c":"d"
  }
}

次に、 query_string_parameters.name を解読し、 %20 を空白に置き換える。 replace 、古いフィールドを新しいフィールドで上書きし、既存のキーパスの値を新しい値で上書きする。

replace query_string_parameters.name with urlDecode(query_string_parameters.name)
replace query_string_parameters.b with urlDecode(query_string_parameters.b)

その結果、次のような文書ができあがる:

{
  "domain":"https://www.ibm.com",
  "query_string":"name=My%20Name&b=c%20d&c=d",
  "path": "/home",
  "query_string_parameters":{
    "name":"My name",
    "b":"c d",
    "c":"d"
  }
}