式で文字列関数を使用する - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

式で文字列関数を使用する

[transforms] (変換) と[metrics] (メトリクス) では、次の関数を使用して文字列を操作することができます。詳細については、「数式で文字列を使用する」を参照してください。

重要

数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[jp function] (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「未定義の値、無限の値、およびオーバーフロー値」を参照してください。

関数 説明

len(s)

文字列 s の長さをを返します。

find(s, substring)

文字列 substring が文字列 s に含まれるインデックスを返す。

contains(s, substring)

文字列 1 が文字列 s を含んでいれば substring、それ以外の場合は 0 を返します。

upper(s)

文字列 s を大文字で返す。

lower(s)

文字列 s を小文字に変換して返す。

jp(s, json_path)

JsonPathsを使用して文字列を評価しjson_path、結果を返します。

この関数を使うと、次のことができます。

  • シリアル化されたJSON構造から値、配列、またはオブジェクトを抽出します。

  • 文字列を数値に変換する。例えば、jp('111', '$') という数式は、111 を数値として返す。

JSON 構造から文字列値を抽出して数値として返すには、ネストされた複数のjp関数を使用する必要があります。外部jp関数は JSON構造から文字列を抽出し、内部jp関数は文字列を数値に変換します。

文字列 json_path には、文字列リテラルを含める必要があります。つまり、json_path は文字列として評価される式ではありえないということです。

  • jp('{"status":"active","value":15}', '$.value')15 を返します。

  • jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')25 を返します。

  • jp('[2,8,23]', '$[2]')23 を返します。

  • jp('{"values":[3,6,7]}', '$.values[1]')6 を返します。

  • jp('111', '$')111 を返します。

  • jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')0.95 を返します。

join(s0, s1, s2, s3, ...)

文字列をデリミタ付きで連結して返す。この関数は、最初の入力文字列をデリミタとして使い、残りの入力文字列を結合する。これは、Java の join(CharSequence delimiter, CharSequence... elements) 関数と同様に動作します。

  • join("-", "aa", "bb", "cc")aa-bb-cc を返す

format(expression: "format")、または format("format", expression)

指定された書式の文字列を返す。この関数は、expression を評価し、指定されたフォーマットで値を返す。これは、Javaのformat (String format, Object... args)関数と同じような動作をします。サポートされている形式の詳細については、Java プラットフォーム、Standard Edition 7 API仕様「Class Formatter の下の変換」を参照してください。

  • format(100+1: "d") は文字列 101 を返す。

  • format("The result is %d", 100+1) は文字列 The result is 101 を返す。

f'expression'

連結された文字列を返す。この書式付き関数を使うと、簡単な式で文字列の連結や書式設定を行うことができます。これらの関数は、入れ子になった式を含むことができる。{} (中括弧) を使って、式を補間することができます。これは、Python の[formatted string literals] (フォーマットされた文字列リテラル) と同じような動作をします。

  • f'abc{1+2: "f"}d'abc3.000000d を返します。この例の式を評価するには、次のようにします。

    1. format(1+2: "f") は浮動小数点数 3.000000 を返します。

    2. join('', "abc", 1+2, 'd') は文字列 abc3.000000d を返す。

    また、次のように式を書くこともできます join('', "abc", format(1+2: "f"), 'd')