valueof()

マップや配列から指定したキーまたはインデックス位置の値を返します。

構文

valueof(COMPOUND, KEY)

パラメーター

COMPOUND
値を抽出するマップまたは配列。
KEY
マップの場合はキー文字列、配列の場合はインデックス整数。

説明

valueof() 関数は複合オブジェクトから特定の位置の値を抽出して返します。

  • COMPOUND がマップの場合: KEY に対応するキーの値を返します。
  • COMPOUND が配列の場合: KEY を整数インデックスとして使用し、その位置の値を返します。インデックスは 0 から始まります。

以下の状況では null を返します。

  • COMPOUND または KEYnull の場合
  • COMPOUND がマップでも配列でもない場合
  • 配列にインデックス値の代わりに文字列キーを指定した場合
  • マップに整数インデックスを指定した場合(マップのキー型が整数でない場合)
  • インデックスが配列の有効範囲外の場合

エラーコード

該当なし

使用例

  1. 配列からインデックスで値を抽出(インデックスは 0 から始まります)

    json "{}"
    | eval foods = array("Apple", "Banana", "Cucumber")
    | eval food = valueof(foods, 2)
    | # food: Cucumber
    
  2. マップからキーで値を抽出

    json "{}"
    | eval foods = dict("a", "Apple", "b", "Banana", "c", "Cucumber")
    | eval food = valueof(foods, "b")
    | # food: Banana
    
  3. COMPOUNDnull の場合

    json "{}" | eval food = valueof(null, "b")
    | # food: null
    
  4. 配列インデックスが有効範囲外の場合

    json "{}"
    | eval foods = array("Apple", "Banana")
    | eval food = valueof(foods, 5)
    | # food: null
    

互換性

valueof() 関数はSonar 4.0以前のバージョンから提供されています。