Underc0de

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
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta 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