Combinaciones con JSONPath

Combinaciones con JSONPath

Consideraremos el siguiente JSON como base para todos los ejemplos de esta sección. Este JSON representa datos típicos en un contexto de facturación electrónica (no asociada a ningún país específico):

{
  "factura_id": "FAC-00123",
  "cliente": {
    "nombre": "Empresa XYZ",
    "rut": "76.123.456-7"
  },
  "fecha_emision": "2023-10-05",
  "detalles": [
    {"producto": "Laptop Pro", "cantidad": 2, "precio_unitario": 1200000},
    {"producto": "Monitor 24\"", "cantidad": 3, "precio_unitario": 240000}
  ],
  "estado_pago": "pendiente",
  "montos": {
    "neto": 3120000,
    "iva": 592800,
    "total": 3712800
  },
  "historial_pagos": [],
  "es_exportacion": false
}

Ejemplos

  1. Acceso Directo y Concatenación de Texto
    • Selector: "factura_id: "($.factura_id)
    • Descripción: Concatena el texto "factura_id: " con el ID de la factura.
    • Resultado: "factura_id: FAC-00123"
  2. Selección con OR y JSONPath
    • Selector: ($.estado_pago_inexistente)||($.estado_pago)
    • Descripción: Utiliza el operador OR para seleccionar el estado de pago de la factura, proporcionando un valor por defecto si el campo original no existe.
    • Resultado: "pendiente"
  3. Valor por Defecto con OR y JSONPath
    • Selector: ($.historial_pagos_inexistente)||"Sin pagos"
    • Descripción: Ofrece un valor por defecto en caso de que el historial de pagos no esté presente o esté vacío.
    • Resultado: "Sin pagos"
  4. Condición con IF Ternario y JSONPath
    • Selector: ((($.estado_pago_inexistente)||($.estado_pago)) == "pendiente" ? ("Pendiente") : ("Pagado"))
    • Descripción: Comprueba si el estado del pago es "pendiente" y muestra "Pendiente" o "Pagado" en consecuencia.
    • Resultado: "Pendiente"
  5. Concatenación con Valor de un Arreglo
    • Selector: "detalles[0]: "($.detalles[0].producto)
    • Descripción: Concatena la descripción "detalles[0]: " con el nombre del primer producto en los detalles de la factura.
    • Resultado: "detalles[0]: Laptop Pro"
  6. Filtrado de Arreglo y Concatenación
    • Selector: "Productos con precio > 500000: " + str($.detalles[?(@.precio_unitario > 500000)].producto)
    • Descripción: Concatena una descripción con la lista de productos cuyo precio unitario supera los 500000.
    • Resultado: "Productos con precio > 500000: ['Laptop Pro']"
  7. Acceso a Elemento Anidado y Concatenación
    • Selector: "Total factura: "($.montos.total)
    • Descripción: Concatena "Total factura: " con el monto total de la factura.
    • Resultado: "Total factura: 3712800"
  8. Filtrado de Arreglo de Diccionarios y Concatenación
    • Selector: "Cantidad de Laptops: "($.detalles[?(@.producto == "Laptop Pro")].cantidad)
    • Descripción: Concatena "Cantidad de Laptops: " con la cantidad de laptops compradas según los detalles de la factura.
    • Resultado: "Cantidad de Laptops: 2"
  9. Concatenación de un Valor Extraído del Arreglo con Texto
    • Selector: "Primer producto: "($.detalles[0].producto)
    • Descripción: Concatena "Primer producto: " con el nombre del primer producto en la factura.
    • Resultado: "Primer producto: Laptop Pro"
  10. Acceder a un Valor Anidado y Concatenar con un Valor de un Arreglo Usando JSONPath
    • Selector: "Cliente y neto: "($.cliente.nombre)" y "($.montos.neto)
    • Descripción: Concatena el nombre del cliente y el monto neto de la factura, separados por " y ".
    • Resultado: "Cliente y neto: Empresa XYZ y 3120000"

Estos ejemplos demuestran cómo los selectores pueden ser utilizados de manera flexible para extraer y combinar datos de un JSON, especialmente en contextos de facturación electrónica.

Commenting is not enabled on this course.