---
title: "Casos genéricos"
description: "Casos genéricos"
type: "academy"
category: "lesson"
tags: []
authors: [Anonymous]
date: "2026-10-08"
last_update: "2026-10-08"
time_minutes: 5
draft: false
unlisted: false
url: "https://www.billmysales.com/academy/leer-datos-de-json-con-selectores/casos-de-uso/casos-genericos"
---

# Casos genéricos

Los JSON, y por lo tanto índices y valores que se verán en los siguientes casos, son solo variables de ejemplo para mostrar el funcionamiento de los diferentes selectores y sus combinaciones. No son casos reales de órdenes de cierto comercio electrónico. Es importante que cada usuario, usando esta documentación, adapte el selector a los índices de su JSON.

## Valor en índice de primer nivel

Si tenemos el siguiente JSON:

```json
{
    "k_simple": "v_simple"
}
````

Para obtener el valor del índice k_simple usamos el siguiente selector:

```json
k_simple
```
## Valor en índice de segundo nivel (anidado)

Se utiliza un "." (punto) para ingresar a un nivel interior, o sea para entrar al objeto anidado.

Si tenemos el siguiente JSON:

```json
{
    "k_nested1": {
        "k_nested2": "v_nested"
    }
}
```

Para obtener el valor del índice **k_nested2** usamos el siguiente selector:

```json
k_nested1.k_nested2
```

## Valor en índice de tercer nivel (anidado)

Este caso es idéntico al caso anterior. Se deja solo para ilustrar que se puede seguir agregando "." para ingresar a tantos niveles como sea necesario según el JSON que tengamos.

Si tenemos el siguiente JSON:

```json
{
    "k_nested1p": {
        "k_nested2p": {
            "k_nested3p": "v_nested"
        }
    }
}
```

Para obtener el valor del índice **k_nested3p** usamos el siguiente selector:

```json
k_nested1p.k_nested2p.k_nested3p
```

## Valor en índice de un arreglo

Si tenemos el siguiente JSON:

```json
{
    "array": [1, 2, 3]
}
```
Para obtener el valor del índice **1 del arreglo** (segundo elemento, ya que los arreglos comienzan desde el índice 0) usamos el siguiente selector:

```json
array[1]
```

## Valor en índice de un arreglo anidado

Este caso es una combinación de 2 casos vistos previamente:

* Valor en índice de segundo nivel (anidado).
* Valor en índice de un arreglo.

Si tenemos el siguiente JSON:

```json
{
    "nested_array": {
        "array": [1, 2, 3]
    }
}
```

Para obtener el valor del índice 1 del arreglo usamos el siguiente selector:

```json
nested_array.array[1]
```

## Valor en índice asociado a otro índice de un arreglo de diccionarios

Este es un caso bastante interesante, aquí tenemos un arreglo con diccionarios y necesitamos elegir un valor desde uno de los diccionarios pero no sabes cuál es su posición dentro del arreglo. Debido a lo anterior, la alternativa es buscar en los diccionarios por un "filtro" (valor conocido) y elegir otro índice dentro del mismo diccionario (diccionario filtrado) como el valor real que necesitamos obtener.

Se usarán 2 índices para este selector:

* Primer índice, lo llamaremos key, tiene el valor que estamos buscando para filtrar el diccionario que elegiremos del arreglo.
* Segundo índice, lo llamaremos value, tiene el valor real que estamos buscando obtener.

Si tenemos el siguiente JSON:

```json
{
    "mixed": [
        {
            "key": 10,
            "value": "hola"
        },
        {
            "key": 20,
            "value": "mundo"
        },
        {
            "key": 30,
            "value": "chao"
        },
    ]
}
```

Para obtener el valor del índice **value** asociado al índice **key** que tiene como valor **20** usamos el siguiente selector:
```json
mixed[key=20:value]
```
El formato de este selector es el siguiente:

```json
array[key=filtro:value]
```

Donde:

* **array:** es el selector del arreglo que deseamos usar.
* **key:** es el índice que usaremos para hacer el filtro.
* **filtro:** es el valor que buscamos que tenga el índice key.
* **value:** es el valor asociado al índice key que queremos recuperar para usar.

Estos 4 campos irán cambiando según el JSON (al igual que todos los índices y valores de estos casos de ejemplo).

## Valor en índice asociado a otro índice de un arreglo de diccionarios que está anidado

Este caso es una combinación de 2 casos vistos previamente:

* Valor en índice de segundo nivel (anidado).
* Valor en índice asociado a otro índice de un arreglo de diccionarios.

Si tenemos el siguiente JSON:

```json
{
    "nested_mixed": {
        "mixed": [
            {
                "key": 10,
                "value": "hola"
            },
        ]
    }
}
```

Para obtener el valor del índice **value** asociado al índice **key** que tiene como valor **10** usamos el siguiente selector:

```json
nested_mixed.mixed[key=10:value]
```

## Valor en índice anidado dentro de un índice asociado a otro índice de un arreglo de diccionarios

Este caso es una combinación de 2 casos vistos previamente:

* Valor en índice asociado a otro índice de un arreglo de diccionarios.
* Valor en índice de segundo nivel (anidado).

> [!NOTE] Importante
>
> El orden de la lista anterior si importa. Se usan los mismos casos que el caso previo, pero en otro orden. Acá primero se filtra y luego se extrae el valor desde el índice anidado.

Si tenemos el siguiente JSON:

```json
{
    "mixed_with_childs": [
        {
            "key": 20,
            "child": {
                "value": "hijo"
            }
        }
    ]
}
```

Para obtener el valor del índíce **value** que está anidado dentro del índice child asociado al índice **key** que tiene como valor **20** usamos el siguiente selector:

```json
mixed_with_childs[key=20:child].value
```

> [!NOTE] Nota
>
>Si en vez de seleccionar **value** usáramos este selector:

```json
mixed_with_childs[key=20:child]
```

Obtendríamos lo siguiente:

```json
{
    "value": "hijo"
}
```

Como se podría suponer, esto significa que obtendremos un objeto, en este caso un diccionario. Los selectores permiten obtener objetos. Sin embargo, en las configuraciones que se realizan en BillMySales esto nunca se debe hacer. En las configuraciones de BillMySales siempre debemos llegar al valor escalar (no objeto), ya sea: un texto (string), un número o un valor booleano.


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

