在公式表达式中使用字符串函数 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在公式表达式中使用字符串函数

转换指标中,您可以使用以下函数对字符串进行操作。有关更多信息,请参阅 在公式中使用字符串

重要

公式表达式只能输出双精度值或字符串值。嵌套表达式可以输出其他数据类型,例如字符串,但整个公式的计算结果必须为数字或字符串。您可以使用 jp 函数将字符串转换为数字。布尔值必须为 1(真)或 0(假)。有关更多信息,请参阅 未定义值、无限值和溢出值

函数 描述

len(s)

返回字符串 s 的长度。

find(s, substring)

返回字符串 substring 中字符串 s 的索引。

contains(s, substring)

如果字符串 s 包含字符串 substring,则返回 1,否则,返回 0

upper(s)

以大写形式返回字符串 s

lower(s)

以小写形式返回字符串 s

jp(s, json_path)

s使用JsonPath表达式计算字符串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 中的连接(CharSequence 分隔符, CharSequence... 元素)函数。

例 示例
  • join("-", "aa", "bb", "cc") 返回 aa-bb-cc

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

返回指定格式的字符串。此函数将 expression 求值,然后以指定格式返回该值。其行为类似于 Java 中的 format(String format, Object... 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')