Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: proxy_lainux en Abril 26, 2021, 04:29:44 PM

Título: ¿Cómo obtengo datos de JSON con varias {}?
Publicado por: proxy_lainux en Abril 26, 2021, 04:29:44 PM
Hola

Una pregunta, ¿cómo puedo avanzar en JSON para obtener ciertos datos?. Por ejemplo, cuando tengo algo así...

Código (csharp) [Seleccionar]
{
  nombre: juan,
  apellido: penas,

}


pues solo es colocar  JsonUtility.FromJson y un string Serializable con nombre y apellido;

si tengo algo así...


Código (csharp) [Seleccionar]
{
  nombre: juan,
  apellido: [{
        primero: penas,
        segundo: y penas,
}]
}


ahora es necesario usar un List para apellido e ir colocando dentro los datos de "primero y segundo" y luego con foreach voy retomando esos datos para mostrarlos.

pero, ¿cómo obtengo los datos de la lista de JSON, si es así?

Código (csharp) [Seleccionar]

{
  nombre: juan,
  apellidos: {
        primero: penas,
        segundo: y penas,
    }
}


quisiera poner en un TextBox los datos de "primero y segundo", pero, ¿cómo avanzo de la primer llave a la segunda para tomar los datos?.

Lo estoy programando en C#, estoy aprendiendo a usar ese lenguaje y se me hizo interesante hacerlo con json.

Saludos.
Título: Re: ¿Cómo obtengo datos de JSON con varias {}?
Publicado por: DtxdF en Abril 26, 2021, 07:22:47 PM
Hola @proxy_lainux  ;D

No tengo idea de C#, pero por si te sirve: si quieres acceder a primero o segundo entonces tendrías que acceder primero a apellidos, o sea, debes verlo de una manera recursiva, pero ya depende de la interfaz. Para mostrarte un ejemplo y espero sea simple.

Teniendo el siguiente archivo json:

juan.json
Código (javascript) [Seleccionar]
{
  "nombre": "Juan",
  "apellidos": {
    "primero": "penas",
    "segundo": "y penas"
  }
}


Entonces en Python podríamos hacer lo siguiente:
Código (python) [Seleccionar]
#!/usr/local/bin/python3.7

import json # Se importa la librería JSON

with open("juan.json") as fd: # Abrimos el archivo juan.json
profileJuan = json.load(fd) # Se parsea y se convierte en un diccionario al que podemos acceder por su clave correspondiente

print("Apellidos:", profileJuan["apellidos"]) # Accedemos a la clave apellidos
print("Primero:", profileJuan["apellidos"]["primero"]) # Accedemos a la clave primero que está en el diccionario apellidos
print("Segundo:", profileJuan["apellidos"]["segundo"]) # Accedemos a la clave segundo que está en el diccionario apellidos


Como te mencioné, todo depende de la interfaz y cómo el lenguaje interactúe con los datos procesados. Hay una utilidad muy buena llamada jq (https://stedolan.github.io/jq/download/), que permite parsear e incluso imprimir de una manera más amigable en la terminal, archivos JSON, por lo que dado el mismo archivo juan.json:

Código (bash) [Seleccionar]
cat juan.json | jq --args .apellidos
cat juan.json | jq --args .apellidos.primero
cat juan.json | jq --args .apellidos.segundo


Se imprimiría:

(https://i.imgur.com/kdaRv17.png)

~ DtxdF
Título: Re: ¿Cómo obtengo datos de JSON con varias {}?
Publicado por: proxy_lainux en Abril 26, 2021, 09:15:28 PM
Ok, voy a investigar lo que mencionas, al menos ya me diste una idea de que debo buscar, voy a hacer lo que me mencionas a ver como me va, sino, pues tendré que volver a preguntar jeje.

Gracias.
Título: Re: ¿Cómo obtengo datos de JSON con varias {}?
Publicado por: ANTRAX en Abril 30, 2021, 10:57:09 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pudiste solucionarlo?
Para ver si marcamos el tema como resuelto o si te seguimos ayudando.

Saludos,
ANTRAX
Título: Re: ¿Cómo obtengo datos de JSON con varias {}?
Publicado por: Rokwitte en Abril 30, 2021, 01:57:08 PM
Amigo creo que la solución que estas buscando puede ser como se explica en esta pagina.
https://www.w3schools.com/js/js_json_arrays.asp
espero te ayude.
saludos