Todos los productos
Search
Centro de documentos

IoT Platform:Sintaxis de scripts

Última actualización: Sep 04, 2026

El analizador de IoT Platform procesa datos complejos de mensajes para facilitar la comunicación entre servicios en la nube. Este componente obtiene el contenido de los mensajes, convierte formatos de datos, procesa cadenas, datos con formato JSON y datos binarios, y reenvía la información a otros servicios.

Contexto

IoT Platform procesa y transmite datos según los formatos definidos en los topics. Para obtener más información, consulte Data formats.

El analizador utiliza una sintaxis similar a JavaScript. Es posible escribir scripts del analizador basados en esta sintaxis, aunque no todas las funcionalidades de JavaScript son compatibles. Las siguientes secciones describen cómo escribir un script.

Escritura de un script

Para escribir un script, realice los siguientes pasos:

  1. Utilice la función payload() para obtener los datos enviados por los dispositivos y conviértalos a formato JSON.

    var data = payload("json");
    Importante

    Los datos enviados que se desean analizar deben convertirse a arreglos JSON o a datos JSON anidados.

  2. Defina un campo y asígnele el valor de propiedad obtenido del payload.

    • Para obtener más información sobre cómo definir campos mediante identificadores y establecer tipos de datos, consulte las secciones "Identificadores" y "Tipos de datos".

    • Es posible usar expresiones JSONPath o la función getOrNull() para obtener valores de campo. Para obtener más información, consulte LanguageManual UDF y getOrNull().

      Por ejemplo, en el siguiente script de muestra, puede usar getOrNull(data, "items", "Humidity", "value"); para obtener el valor 25, usar data.items.Temperature.value para obtener el valor 38 y usar data.iotId para obtener el valor JCp9***.

    Importante

    Cuando utilice el script para obtener un valor de campo específico de los datos enviados por el dispositivo, considere lo siguiente:

    • Si el identificador del campo comienza con un dígito, debe usar la función getOrNull(). Las expresiones JSONPath no son compatibles en este caso. Por ejemplo, solo puede usar la función getOrNull(data, "items", "2Co", "value") en el script de muestra para obtener el valor 10 del campo 2Co. La expresión data.items.2Co.value no es compatible.

    • Si el campo no existe en los datos enviados por el dispositivo, puede ocurrir uno de los siguientes escenarios:

      • Si usa la función getOrNull(), se devuelve null y el script continúa ejecutándose.

      • Si usa una expresión JSONPath, se genera un puntero nulo y el script detiene su ejecución.

    También puede procesar datos o realizar cálculos según sus necesidades empresariales. Para obtener información sobre operadores y funciones compatibles, consulte Operators y Function list.

  3. Use funciones para reenviar datos.

    Para obtener más información, consulte Functions to forward data to data destinations.

    También puede utilizar sentencias de control para establecer condiciones de reenvío de datos. En el siguiente script de ejemplo, la sentencia if establece una condición. Para obtener más información sobre las sentencias de control compatibles, consulte la sección "Sentencias de control".

Script de ejemplo

Se envían los siguientes datos de propiedades de ejemplo:

{
    "deviceType": "CustomCategory",
    "iotId": "JCp9***",
    "requestId": "1626948228247",
    "checkFailedData": {

    },
    "productKey": "a1o***",
    "gmtCreate": 1626948134445,
    "deviceName": "Device1",
    "items": {
        "Temperature": {
            "value": 38,
            "time": 1626948134319
        },
        "Humidity": {
            "value": 25,
            "time": 1626948134319
        },
        "2Co": {
            "value": 10,
            "time": 1626948134319
        }
    }
}

El siguiente script analiza y procesa los datos enviados:

// Use the payload() function to obtain the data that is submitted by devices and convert the data to JSON-formatted data. 
var data = payload("json"); 
// Filter the submitted temperature and humidity values. 
var h = getOrNull(data, "items", "Humidity", "value");
var t = data.items.Temperature.value;
var c = getOrNull(data, "items", "2Co", "value");
// Configure a data forwarding rule. If the temperature value is greater than 38, the rule is triggered to send data to ApsaraDB RDS. 
// An ApsaraDB RDS table includes the following columns: id (auto-increment primary key), deviceName, temperature, humidity, 2Co, and time. You can call the writeRds() method and specify multiple <Column name>:<Value> pairs in the method to write the values to the specified columns. 
if (t > 38) { 
    writeRds(1000, {"deviceName":deviceName(), "temperature":t, "humidity":h, "2Co":c, "time":timestamp()});  
}

Identificadores

Los identificadores se utilizan para definir constantes, variables y campos personalizados dentro del script. Un identificador puede contener letras, dígitos y guiones bajos (_), pero no puede comenzar con un dígito.

Las siguientes palabras clave y palabras reservadas no pueden usarse como identificadores:

  • Palabras clave: for, break, continue, if, else, true, false, var, new, null y return.

  • Palabras reservadas: breakdo, instanceof, typeof, case, catch, finally, void, switch, while, debugger, function, this, with, default, throw, delete, in, try, as, from, classenum, extends, super, const, export, import, await, implementslet, let, private, public, interface, package, protected, static y yield.

Tipos de datos

El script admite los siguientes tipos de datos para constantes, variables y campos personalizados: number, Boolean, string, byte, map y array.

Las constantes pueden ser nulas. Los tipos de constantes numéricas compatibles incluyen enteros decimales, enteros hexadecimales y punto flotante.

Sentencias de control

IoT Platform es compatible con las sentencias for e if...else. Las sentencias for admiten las palabras clave break y continue.

Importante

Si utiliza una sentencia

for

para ejecutar repetidamente una función de reenvío de datos, el número de iteraciones no puede exceder 100. Para obtener más información sobre las funciones de reenvío de datos, consulte

Functions to forward data to data destinations

.

Operadores

  • Operadores lógicos: && y ||.

    En condiciones lógicas, un valor nulo se evalúa como falso y todos los demás valores se evalúan como verdaderos. Por ejemplo, null && "x" devuelve falso, y null || "x" devuelve verdadero.

  • Operadores matemáticos: *, /, %, + y -.

    Solo se admiten tipos de datos numéricos. El uso de otros tipos provoca un error.

  • Operadores de comparación: >, =>, <, <=, == y !=. El operador de comparación == solo admite valores numéricos.

Comentarios

El script admite comentarios de varias líneas (/* ${comments}*/) y comentarios de una sola línea (// ${comments}).

Referencias

  • Para obtener información sobre las funciones compatibles, consulte Function list.

  • Para ver más ejemplos sobre cómo configurar scripts del analizador para reenviar datos, consulte el directorio Data forwarding examples.