在公式運算式中使用字串函數 - AWS IoT SiteWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在公式運算式中使用字串函數

轉換量度中,您可以使用下列函數對字串進行操作。如需詳細資訊,請參閱 在公式中使用字串

重要

公式運算式只能輸出雙精度值或字串值。巢狀運算式可以輸出其他資料類型 (例如字串),但整體公式必須評估為數字或字串。您可以使用 jp 函數將字串轉換為數字。布林值必須是 1 (真) 或 0 (假)。如需詳細資訊,請參閱 未定義、無限和溢出值

函數 描述

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)

s使用表達式評估字符JsonPathjson_path並返回結果。

使用此函數可執行下列作業:

  • 從序列化的 JSON 結構中擷取值、陣列或物件。

  • 將字符串轉換為數字。例如,公式會111以數字的形式jp('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 中的連接(CharSequence 分隔符, CharSequence... 元素)函數類似。

範例
  • join("-", "aa", "bb", "cc")回報 aa-bb-cc

format(expression: "format")format("format", expression)

返回指定格式的字符串。該函數評估expression為一個值,然後返回指定格式的值。這與 Java 中的格式(字符串格式,對象... args)函數類似。如需有關支援格式的詳細資訊,請參閱 Java 平台中類別格式化程式下的轉換,標準版 7 API 規格。

範例
  • format(100+1: "d")返回一個字符串,101

  • format("The result is %d", 100+1)返回一個字符串,The result is 101

f'expression'

返回一個連接的字符串。使用此格式化函數,您可以使用簡單的表達式來連接和格式化字符串。這些函數可能包含嵌套表達式。您可以使用 {} (大括號) 內插運算式。這與 Python 中格式化的字符串文字相似。

範例
  • 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').