Casos genéricos

Los JSON, y por lo tanto índices y valores que se verán en los siguientes casos, son sólo 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:

{
    "k_simple": "v_simple"
}

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

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:

{
    "k_nested1": {
        "k_nested2": "v_nested"
    }
}

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

k_nested1.k_nested2

Valor en índice de tercer nivel (anidado)

Este caso es idéntico al caso anterior. Se deja sólo 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:

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

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

k_nested1p.k_nested2p.k_nested3p

Valor en índice de un arreglo

Si tenemos el siguiente 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:

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:

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

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

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:

{
    "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:

mixed[key=20:value]

El formato de este selector es el siguiente:

  • 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:

{
    "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:

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).

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:

{
    "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:

mixed_with_childs[key=20:child].value

Nota: si en vez de seleccionar value usaramos este selector:

mixed_with_childs[key=20:child]

Obtendríamos lo siguiente:

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

Commenting is not enabled on this course.