---
title: "Combinaciones con JSONPath"
description: "Combinaciones con JSONPath"
type: "academy"
category: "lesson"
tags: []
authors: [Anonymous]
date: "2026-10-08"
last_update: "2026-10-08"
time_minutes: 3
draft: false
unlisted: false
url: "https://www.billmysales.com/academy/leer-datos-de-json-con-selectores/json-path/combinaciones-con-json-path"
---

# 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):

```json
{
  "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.


---
Última actualización el 08/10/2026

