elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Como podria recorrer un array anidado c#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como podria recorrer un array anidado c#  (Leído 1,431 veces)
d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Como podria recorrer un array anidado c#
« en: 24 Enero 2018, 18:56 »

Hola, estoy construyendo un webapi que solo funcionara como un tunel para las llamadas desde el cliente, quien le enviara un json, a la vez el webapi lo unico que hara sera llamar al StoredProcedure que esta en Oracle y pasarle sus parametros, pero el json viene demasiado anidado y por lo menos en Oracle he pensado hacer un tipo de dato personalizado (coleccion), pero no se como desmenuzar este array en el web api y pasarselo al StoredProcedure, alguien me puede dar una idea, el json  me llega asi:(lo convertire a array)
Código
  1. {
  2. "pedido": {
  3. "key": "value",
  4. "key2": "value2",
  5. "detallepedigo": [{
  6. "key": "value",
  7. "key2": "value2",
  8. "especificacion": [{
  9. "key": "value",
  10. "key2": "value2",
  11. "subespecificacion": [{ "key": "value","key2": "value2" },
  12.  { "key": "value","key2": "value2" }]
  13. },
  14. {
  15. "key": "value",
  16. "key2": "value2",
  17. "subespecificacion": [{ "key": "value", "key2": "value2" },
  18.  { "key": "value", "key2": "value2" }]
  19. }
  20. ]
  21. },
  22. {
  23. "key": "value",
  24. "key2": "value2",
  25. "especificacion": [{
  26. "key": "value",
  27. "key2": "value2",
  28. "subespecificacion": [{ "key": "value", "key2": "value2" },
  29.  { "key": "value", "key2": "value2" }]
  30. },
  31. {
  32. "key": "value",
  33. "key2": "value2",
  34. "subespecificacion": [{ "key": "value", "key2": "value2" },
  35.  { "key": "value", "key2": "value2" }]
  36. }
  37. ]
  38. }
  39. ]
  40. }
  41. }
  42.  


En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.250


Be the change you wanna see in te world


Ver Perfil
Re: Como podria recorrer un array anidado c#
« Respuesta #1 en: 24 Enero 2018, 19:23 »

Primero, no he trabajado mucho con JSON (aún), pero, no se supone que lo que obtengas sea un diccionario?

De cualquier forma, creo que lo que tienes que hacer es iterar por el array original? Si sabes la estructura relativa de lo que tienes, en el momento que sea posible encontrarte con un array, simplemente llamas a un metodo que sea recursivo y vas iterando en profundidad. Algo así como este pseudo-código:

Código:
static main()
//Haces las cosas que hagas para obtenerlo y guardas en la variable array

//Ciclo que recorre el array principal
for i=0 to array.length do
  if array[i].isArray then
    MetodoRecursivo(array[i])
  else
    //Hacer algo con ese elemento
end

static void MetodoRecursivo(array)
  for i in array.Length do
     if array[i].isArray then
       MetodoRecursivo(array[i])
     else
       //imprimir o calcular o almacenar o modificar (sea lo que hagas)
end

Si dieras más detalles sobre tu implementación quizás se te pudiera ayudar más.

Salu2s


En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.584


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Como podria recorrer un array anidado c#
« Respuesta #2 en: 24 Enero 2018, 20:48 »

Utiliza https://www.newtonsoft.com/json

Un saludo.
En línea


Interesados hablad por Discord.
NEBIRE


Desconectado Desconectado

Mensajes: 2.327


Ver Perfil
Re: Como podria recorrer un array anidado c#
« Respuesta #3 en: 24 Enero 2018, 21:41 »

Tu colección podría tener una clase base, con estos detalles:

Código:
    enumeracion Tipos
        TIPO_DETALLE_PEDIDO
        TIPO_ESPECIFICACION
        TIPO_SUBESPECIFICACION 
    fin enumeracion

    Clase Detalles
        string Key1
        string Key2
        Tipos Tipo
        // Byte tipoAnidado
    fin clase

    Clase Pedidos
        array de Detalles Pedido()

        // FALTA: métodos públicos y/o privados que precise la clase para rellenar y accede al array Pedido
    fin clase
Si la subespecificaciones pueden estar anidadas, si es fija y siempre la misma añade diferentes tipos a la enumeración hasta ese nivel de anidación, si es variable, añade un campo (por ejemplo: tipoAnidado) en la clase detalles que señale un valor. 0 sería para la subespecificación bajo la 'especificación', con cada subespecificación bajo una subespecificación suma 1...
En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: Como podria recorrer un array anidado c#
« Respuesta #4 en: 26 Enero 2018, 19:34 »

Gracias, me han informado que el webapi solo transformara a array el json y lo enviara junto con el nombre del package de Oracle, ahora estoy viendo como crear un tipo de dato personalizado en Oracle para poder recibir este array c# solo le dira que es un DbType.Structured
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como recorrer Array + Listbox
Programación Visual Basic
Hendrix 1 3,389 Último mensaje 5 Enero 2006, 00:34
por Kizar
¿Como Recorrer un array en C++ ?
Programación C/C++
[GB] 4 23,055 Último mensaje 23 Julio 2010, 23:38
por Eternal Idol
Recorrer Array
Programación C/C++
cobolitros 2 1,745 Último mensaje 7 Julio 2011, 21:08
por leogtz
[Resuelto] Recorrer array como sesión
PHP
splendid37 2 1,204 Último mensaje 15 Febrero 2016, 16:29
por splendid37
Como recorrer un array de objetos
PHP
d91 0 1,150 Último mensaje 6 Octubre 2016, 16:07
por d91
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines