Uso de funciones de cadena en expresiones de fórmulas - AWS IoT SiteWise

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de funciones de cadena en expresiones de fórmulas

En las transformaciones y las métricas, puede utilizar las siguientes funciones para operar con cadenas. Para obtener más información, consulte Uso de cadenas en las fórmulas.

importante

Las expresiones de fórmula solo pueden generar valores dobles o de cadena. Las expresiones anidadas pueden generar otros tipos de datos, como cadenas, pero la fórmula en su conjunto debe evaluarse como un número o una cadena. Puede usar la función jp para convertir una cadena en un número. El valor booleano debe ser 1 (verdadero) o 0 (falso). Para obtener más información, consulte Valores indefinidos, infinitos y de desbordamiento.

Función Descripción

len(s)

Devuelve la longitud de la cadena s.

find(s, substring)

Devuelve el índice de la cadena substring en la cadena s.

contains(s, substring)

Devuelve 1 si la cadena s contiene la cadena substring, en caso contrario 0.

upper(s)

Devuelve la cadena s en mayúsculas.

lower(s)

Devuelve la cadena s en minúsculas.

jp(s, json_path)

Evalúa la cadena s con la JsonPathexpresión json_path y devuelve el resultado.

Utilice esta función para hacer lo siguiente:

  • Extraer un valor, una matriz o un objeto de una estructura JSON serializada.

  • Convertir una cadena en un número. Por ejemplo, la fórmula jp('111', '$') devuelve 111 como un número.

Para extraer un valor de cadena de una estructura JSON y devolverlo como un número, debe utilizar varias funciones anidadas jp. La función externa jp extrae la cadena de la estructura JSON y la función interna jp convierte la cadena en un número.

La cadena json_path debe contener un literal de cadena. Esto significa que json_path no puede ser una expresión que se evalúe como cadena.

ejemplo Ejemplos
  • jp('{"status":"active","value":15}', '$.value') devuelve 15.

  • jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading') devuelve 25.

  • jp('[2,8,23]', '$[2]') devuelve 23.

  • jp('{"values":[3,6,7]}', '$.values[1]') devuelve 6.

  • jp('111', '$') devuelve 111.

  • jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$') devuelve 0.95.

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

Devuelve una cadena concatenada con un delimitador. Esta función usa la primera cadena de entrada como delimitador y une las cadenas de entrada restantes. Esto se comporta de forma similar a la función join (CharSequence delimiter, CharSequence... elements) de Java.

ejemplo Ejemplos
  • join("-", "aa", "bb", "cc") devuelve aa-bb-cc

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

Devuelve una cadena en el formato especificado. Esta función evalúa expression como un valor y, a continuación, devuelve el valor en el formato especificado. Esto se comporta de forma similar a la función format(String format, Object... args) de Java. Para obtener más información sobre los formatos compatibles, consulte el apartado Conversions en la sección Class Formatter de la plataforma Java, edición estándar 7, especificación de API.

ejemplo Ejemplos
  • format(100+1: "d") devuelve una cadena, 101.

  • format("The result is %d", 100+1) devuelve una cadena, The result is 101.

f'expression'

Devuelve una cadena concatenada. Con esta función formateada, puede utilizar una expresión sencilla para concatenar y formatear cadenas. Estas funciones pueden contener expresiones anidadas. Puede utilizar {} (corchetes) para interpolar expresiones. Esto se comporta de forma similar a los literales de cadena formateados de Python.

ejemplo Ejemplos
  • f'abc{1+2: "f"}d' devuelve abc3.000000d. Para evaluar esta expresión de ejemplo, haga lo siguiente:

    1. format(1+2: "f") devuelve un número de punto flotante, 3.000000.

    2. join('', "abc", 1+2, 'd') devuelve una cadena, abc3.000000d.

    También puede escribir la expresión de la siguiente manera: join('', "abc", format(1+2: "f"), 'd').