Filtro JSON

Para saber más sobre los filtros en general, consulte el tema Comprender los filtros.

Utilice el filtro JSON siempre que un desencadenador reciba los datos en código JSON. El filtro JSON le permite usar variables y valores de su archivo JSON. El filtro admite la extracción de datos de matrices JSON.

Nota

Automation le permite usar todos los tipos de datos JSON. Lea más sobre los tipos de datos JSON disponibles aquí.

Si bien puede definir la estructura de archivos JSON manualmente, NiceLabel recomienda importar la estructura de los archivos JSON recibidos.

Para importar la estructura de archivos JSON:

  1. Vaya a Filtros de datos y Edite su filtro JSON.

  2. Haga clic en Estructura > Importar estructura de datos. Navegue hasta su archivo JSON y haga clic Abrir.

    Después de importar los archivos JSON, la sección Vista previa de datos muestra el contenido JSON. La Vista previa de datos también resalta los elementos que define como campos de salida.

Para ejemplos de datos JSON, consulte la sección Datos JSON.

Definir campos JSON

Cuando define campos JSON, hace que los valores de los elementos seleccionados estén disponibles automáticamente. La definición de filtros hace que dichos filtros estén disponibles para asignación a variables en acciones. Esto le permite extraer los valores de los elementos.

Para definir campos JSON:

  1. Seleccione el elemento y establezca su Uso en Valor de la variable.

  2. El elemento se muestra en la lista de estructuras con letras en negrita, indicando que está en uso.

  3. El elemento se utiliza como el nombre de campo de salida.

  4. En la sección Vista previa de los datos se resaltan los valores del elemento seleccionado.

    UUID-9f0f03fd-7076-59f2-c647-ba1f51e713b0.png

Definir elementos reiterativos en el filtro JSON

Si un elemento JSON aparece en datos JSON varias veces, es un elemento reiterativo. Generalmente, el elemento reiterativo tiene datos para una única plantilla de etiquetas. Los elementos reiterativos producen varias etiquetas con datos relevantes.

Para indicar que desea utilizar datos de todos los elementos reiterativos, y no solo del primero:

  1. Seleccione el elemento y defínalo como un Bloque de datos.

  2. Habilite la opción Elemento reiterativo.

UUID-8cd03b89-bc59-8a9a-0f71-cb27d3d850d8.png

Cuando el filtro contiene la definición de elementos definidos como bloque de datos / elemento reiterativo, la acción Usar filtro de datos mostrará elementos reiterativos con marcadores de posición anidados. Toda acción anidada debajo de dicho marcador de posición se ejecutará únicamente para los bloques de datos en este nivel.

Aviso

El filtro de datos JSON con bloque de datos anidado duplica los valores del área de asignación anterior si una variable está definida en el primer bloque pero no en el segundo. Por ejemplo, se imprimen dos etiquetas. En la primera área de asignación, define una variable "manufacturer_serial". En la segunda área de asignación, esta variable no está presente.

{
  "jobs": [
    {
      "data": [
        {
          "manufacturer_serial": "706583012001",
          "package_code": "AA792CY"
        }
      ],
      "label_filename": "serial_number_label.nlbl",
      "print_quantity": 1,
      "printer_name": "Warehouse_printer_09"
    },
    {
      "data": [
        {
          "package_code": "BE273XS"
        }
      ],
      "label_filename": "serial_number_label.nlbl",
      "print_quantity": 1,
      "printer_name": "Warehouse_09"
    }
  ]
}

El resultado esperado sería la segunda etiqueta sin los datos de "manufacturer_serial". Pero en la impresión real, la segunda etiqueta contendría el valor de "manufacturer_serial" de la primera etiqueta, que es 706583012001.

Hay tres soluciones posibles:

  • Evitar los bloques de datos anidados.

  • Definir los valores de las variables como valores vacíos ("") si las variables no se utilizan en los bloques de datos anidados.

          "data": [
            {
              "manufacturer_serial": "",
              "package_code": "AA792CY"
            }
  • Utilizar condiciones en las acciones para establecer variables.

  • Utilizar la manipulación de cadenas cuando se detectan las variables faltantes.

Definir área de asignación JSON

El filtro JSON identifica automáticamente los campos y sus valores en los datos recibidos. Esto elimina la necesidad de asignación manual variable-a-campo.

UUID-8cd03b89-bc59-8a9a-0f71-cb27d3d850d8.png

Nota

Debido a que no hay atributos opcionales en JSON, Automation define los Nombres de las variables y los Valores de las variables automáticamente.