Selector JSONPath
Selector 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):
{
"cliente": {
"nombre": "Juan Pérez",
"es_vip": false
},
"total": 150000,
"items": [
{"nombre": "Producto A", "precio": 50000},
{"nombre": "Producto B", "precio": 100000}
],
"factura": {
"detalles": [
{"producto": "Producto A", "cantidad": 1},
{"producto": "Producto B", "cantidad": 2}
]
},
"productos": [
{"id": "A100", "nombre": "Producto A", "precio": 25000},
{"id": "B200", "nombre": "Producto B", "precio": 50000}
],
"ventas": [
{"producto": "Producto 1", "cantidad": 3},
{"producto": "Producto 3", "cantidad": 6},
{"producto": "Producto 5", "cantidad": 10}
],
"historial_compras": [
{"codigo": "C101", "detalle": {"fecha": "2023-01-15"}},
{"codigo": "C102", "detalle": {"fecha": "2023-03-15"}},
{"codigo": "C103", "detalle": {"fecha": "2023-05-20"}}
],
"numeros_de_serie": ["NS100", "NS101", "NS102"]
}
Ejemplos
- Acceso Directo a una Clave en Primer Nivel
- Selector JSONPath: $.total
- Descripción: Extrae el valor total de la factura.
- Resultado: 150000
- Acceso a un Elemento Anidado
- Selector JSONPath: $.cliente.nombre
- Descripción: Obtiene el nombre del cliente de la factura.
- Resultado: "Juan Pérez"
- Acceso a un Elemento de un Arreglo por Índice
- Selector JSONPath: $.items[0].precio
- Descripción: Recupera el precio del primer artículo en la factura.
- Resultado: 50000
- Acceso a un Elemento Anidado Dentro de un Arreglo
- Selector JSONPath: $.factura.detalles[1].cantidad
- Descripción: Accede a la cantidad del segundo artículo en el detalle de la factura.
- Resultado: 2
- Filtrar Elementos de un Arreglo (por valor existente)
- Selector JSONPath: $.productos[?(@.id == 'A100')].precio
- Descripción: Busca y obtiene el precio de un producto específico, identificado por su ID.
- Resultado: 25000
- Filtrar Elementos de un Arreglo (resultado vacío)
- Selector JSONPath: $.productos[?(@.id == 'A999')]
- Descripción: Intenta encontrar un producto con un ID que no existe en la lista, esperando un resultado vacío.
- Resultado: None
- Acceso a Todos los Elementos de un Arreglo
- Selector JSONPath: $.numeros_de_serie[*]
- Descripción: Obtiene todos los números de serie de los productos.
- Resultado: ["NS100", "NS101", "NS102"]
- Obtener Elementos Basados en una Condición Compleja
- Selector JSONPath: $.ventas[?(@.cantidad > 5)].producto
- Descripción: Selecciona los nombres de los productos que se vendieron en cantidades mayores a cinco.
- Resultado: ["Producto 3", "Producto 5"]
- Obtener un Elemento Anidado en un Diccionario dentro de un Arreglo
- Selector JSONPath: $.historial_compras[?(@.codigo == 'C102')].detalle.fecha
- Descripción: Encuentra la fecha de una compra específica en el historial de compras, usando su código.
- Resultado: "2023-03-15"
- Acceso Directo a un Elemento Booleano
- Selector JSONPath: $.cliente.es_vip
- Descripción: Verifica si el cliente es marcado como VIP.
- Resultado: false
Estos ejemplos demuestran la versatilidad y potencia de JSONPath para acceder y manipular datos en un JSON, especialmente útil en escenarios de facturación electrónica, permitiendo desde el acceso a datos simples hasta la extracción basada en condiciones complejas.
Commenting is not enabled on this course.
Share This Content
Compartir enlace
Share on Social Media
Share by Email
Por favor iniciar sesión para compartir esto Articulo por correo.