Tipos de datos - AWS IoT Core

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.

Tipos de datos

El motor de AWS IoT reglas admite todos los tipos de datos JSON.

Tipos de datos compatibles
Tipo Significado
Int Un discreto Int. 34 dígitos como máximo.
Decimal

Un valor Decimal con una precisión de 34 dígitos, con una magnitud no nula mínima de 1E-999 y una magnitud máxima de 9.999... E999.

nota

Algunas funciones devuelven valores Decimal con doble precisión (en lugar de una precisión de 34 dígitos).

Con SQL V2 (2016-03-23), los valores numéricos que son números enteros, como 10.0, se procesan como un valor Int (10) en lugar del valor Decimal esperado (10.0). Para procesar de forma fiable los valores numéricos de números enteros como valores Decimal, utilice SQL V1 (2015-10-08) como instrucción de consulta de regla.

Boolean True o bien False.
String Una cadena UTF-8.
Array Una serie de valores que no han de tener obligatoriamente el mismo tipo.
Object Un valor JSON compuesto de una clave y un valor. Las claves deben ser cadenas. Los valores pueden ser de cualquier tipo.
Null Valor Null, tal como lo define JSON. Es un valor real que representa la ausencia de valor. El usuario puede crear explícitamente un valor Null especificando la palabra clave Null en la instrucción SQL. Por ejemplo: "SELECT NULL AS n FROM 'topic/subtopic'"
Undefined

No es un valor. No se representa explícitamente en JSON, salvo que se omita el valor. Por ejemplo, en el objeto {"foo": null}, la clave "foo" devuelve NULL, pero la clave "bar" devuelve Undefined. Internamente, el lenguaje SQL trata a Undefined como un valor, pero este no se puede representar en JSON, por lo que cuando se serializa en JSON, los resultados son Undefined.

{"foo":null, "bar":undefined}

se serializa en JSON como:

{"foo":null}

Del mismo modo, Undefined se convierte en una cadena vacía cuando se serializa por sí mismo. Las funciones a las que se llama con argumentos no válidos (por ejemplo, tipos erróneos, número de argumentos erróneo, etc.) devuelven Undefined.

Conversiones

En la tabla siguiente se muestra una lista de los resultados que se producen cuando un valor de un tipo se convierte en otro tipo (cuando se da un valor de tipo incorrecto a una función). Por ejemplo, si a la función de valor absoluto "abs" (que espera un valor Int o Decimal) se le da un valor String, esta función intentará convertir el valor String en un valor Decimal, de acuerdo con estas reglas. En este caso, 'abs ("-5.123")' se trata como 'abs(-5.123)'.

nota

No hay ningún intento de conversión en Array, Object, Null o Undefined.

En valor decimal
Tipo de argumento Resultado
Int Valor Decimal sin separador decimal.
Decimal El valor de origen.
Boolean Undefined. (Puede utilizar de forma explícita la función cast para transformar true = 1.0, false = 0.0.)
String El motor SQL intenta analizar la cadena como unDecimal. AWS IoT intenta analizar las cadenas que coinciden con la expresión regular:^-?\d+(\.\d+)?((?i)E-?\d+)?$. "0", "-1.2", "5E-12" son ejemplos de cadenas que se convierten automáticamente en valores de tipo Decimal.
Matriz Undefined.
Objeto Undefined.
Nulo Null.
Sin definir Undefined.
En valor entero
Tipo de argumento Resultado
Int El valor de origen.
Decimal El valor de origen redondeado al valor Int más cercano.
Boolean Undefined. (Puede utilizar de forma explícita la función cast para transformar true = 1.0, false = 0.0.)
String El motor SQL intenta analizar la cadena como unDecimal. AWS IoT intenta analizar las cadenas que coinciden con la expresión regular:^-?\d+(\.\d+)?((?i)E-?\d+)?$. «0", «-1.2", «5E-12" son ejemplos de cadenas que se convierten automáticamente en Decimal s. AWS IoT Intenta convertir el en a yDecimal, String a continuación, trunca sus decimales para formar un. Decimal Int
Matriz Undefined.
Objeto Undefined.
Nulo Null.
Sin definir Undefined.
En valor booleano
Tipo de argumento Resultado
Int Undefined. (Puede utilizar de forma explícita la función cast para transformar 0 = False, any_nonzero_value = True.)
Decimal Undefined. (Puede utilizar de forma explícita la función cast para transformar 0 = False, any_nonzero_value = True.)
Boolean El valor original.
String "true"= True y "false" = False (no distingue entre mayúsculas y minúsculas). Otros valores de string son Undefined.
Matriz Undefined.
Objeto Undefined.
Nulo Undefined.
Sin definir Undefined.
En cadena
Tipo de argumento Resultado
Int Una representación de cadena del valor Int en notación estándar.
Decimal Una cadena que representa el valor Decimal, posiblemente en notación científica.
Boolean "true" o "false". Todos en minúscula.
String El valor original.
Matriz El valor Array serializado en formato JSON. La cadena obtenida es una lista separada por comas, entre corchetes. Los valores de tipo String se indican entre comillas. No así los valores de tipo Decimal, Int, Boolean y Null.
Objeto El objeto serializado al formato JSON. La cadena obtenida es una lista separada por comas de pares clave-valor que comienza y termina con llaves. Los valores de tipo String se indican entre comillas. No así los valores de tipo Decimal, Int, Boolean y Null.
Nulo Undefined.
Sin definir Sin definir.