Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2016, 13:56
elmouse19
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 4 meses
Puntos: 4
Exclamación Acceso a valores de un json

Hola gente. Tengo un problema para acceder a valores específicos de un json.
No soy muy conocedor del json, como leerlo y mostrarlo, así que sepan disculpar mi ignorancia si me cuesta entender sus respuestas.

Yendo al punto, lo que sucede es que tengo que acceder a un json, que no es un archivo sino una URL que me devuelve el objeto json; y una vez accedido leerlo y evaluar ciertos valores específicos, y tomar acción de acuerdo a eso.

Hasta ahora he podido acceder al json y leer todo el contenido, pero entiendo como logar identificar un valor (o varios) en particular, que me interesa, y leerlo, para luego enviar ese valor como parámetro a una función (que ya esta hecha y funciona correctamente).

Les dejo el codigo JavaScript para leer el json, que esta hecho con ajax.jQuery. Y más abajo el resultado de esa lectura.

jQuery:
Código Javascript:
Ver original
  1. $.ajax({
  2.         // URL a la que se enviará la solicitud Ajax
  3.         url: 'http://ws44403:81/api/generador',
  4.         //Cambiar a type: POST si necesario
  5.         type: "GET",
  6.         // Formato de datos que se espera en la respuesta
  7.         dataType: 'json',
  8.         // Conexion Asincrona
  9.         async: true,
  10.         })
  11.         .done(function json2txt(obj, path){
  12.             var txt = '';
  13.             for (var key in obj)
  14.             {
  15.                 if (obj.hasOwnProperty(key))
  16.                 {
  17.                     if ('object' == typeof(obj[key]))
  18.                     {
  19.                         txt += json2txt(obj[key], path + (path ? ' ---> ' : '') + key);
  20.                         console.log("Key: " + key); //No se usa
  21.                     }
  22.                     else
  23.                     {
  24.                         txt += path + ' --valor-> ' + key + ' <> ' + obj[key] + '<br>';
  25.                         console.log("Value: " + key + obj[key]);//No se usa
  26.                     }
  27.                 }
  28.             }
  29.            
  30.             $('#results').append(txt);
  31.        
  32.     })
  33.     .fail(function( jqXHR, textStatus, errorThrown ) {
  34.         if ( console && console.log ) {
  35.             console.log( "Algo ha fallado: " +  textStatus );
  36.         }
  37.     });


Resultado en pantalla:
Código:
success ---> 0 ---> entrada ---> frecuencia --valor-> valorMin <> 48.5
success ---> 0 ---> entrada ---> frecuencia --valor-> valorMax <> 51.5
undefinedsuccess ---> 0 ---> entrada ---> frecuencia --valor-> claseR <> ok
success ---> 0 ---> entrada ---> frecuencia --valor-> claseS <> sd
success ---> 0 ---> entrada ---> frecuencia --valor-> claseT <> sd
undefinedundefinedundefinedundefinedsuccess ---> 0 ---> entrada ---> frecuencia --valor-> FrecuenciaSalida <> 0
success ---> 0 ---> entrada ---> frecuencia --valor-> FrecR <> 49,9
success ---> 0 ---> entrada ---> frecuencia --valor-> FrecS <> 0
success ---> 0 ---> entrada ---> frecuencia --valor-> FrecT <> 0
success ---> 0 ---> entrada ---> voltaje --valor-> valorMin <> 180
success ---> 0 ---> entrada ---> voltaje --valor-> valorMax <> 280
success ---> 0 ---> entrada ---> voltaje --valor-> claseVr <> ok
success ---> 0 ---> entrada ---> voltaje --valor-> claseVs <> ok
success ---> 0 ---> entrada ---> voltaje --valor-> claseVt <> ok
undefinedundefinedundefinedsuccess ---> 0 ---> entrada ---> voltaje --valor-> VR <> 229
success ---> 0 ---> entrada ---> voltaje --valor-> VS <> 231
success ---> 0 ---> entrada ---> voltaje --valor-> VT <> 231
undefinedundefinedsuccess ---> 0 ---> salida ---> frecuencia --valor-> valorMin <> 48.5
success ---> 0 ---> salida ---> frecuencia --valor-> valorMax <> 51.5
success ---> 0 ---> salida ---> frecuencia --valor-> claseSalida <> error
success ---> 0 ---> salida ---> frecuencia --valor-> claseR <> sd
success ---> 0 ---> salida ---> frecuencia --valor-> claseS <> sd
success ---> 0 ---> salida ---> frecuencia --valor-> claseT <> sd
success ---> 0 ---> salida ---> frecuencia --valor-> aclaracionSalida <> El valor es menor al mínimo permitido.
undefinedundefinedundefinedsuccess ---> 0 ---> salida ---> frecuencia --valor-> FrecuenciaSalida <> 0
success ---> 0 ---> salida ---> frecuencia --valor-> FrecR <> 0
success ---> 0 ---> salida ---> frecuencia --valor-> FrecS <> 0
success ---> 0 ---> salida ---> frecuencia --valor-> FrecT <> 0
success ---> 0 ---> salida ---> voltaje --valor-> valorMin <> 180
success ---> 0 ---> salida ---> voltaje --valor-> valorMax <> 280
success ---> 0 ---> salida ---> voltaje --valor-> claseVr <> error
success ---> 0 ---> salida ---> voltaje --valor-> claseVs <> error
success ---> 0 ---> salida ---> voltaje --valor-> claseVt <> error
success ---> 0 ---> salida ---> voltaje --valor-> aclaracionR <> El valor es menor al mínimo permitido.
success ---> 0 ---> salida ---> voltaje --valor-> aclaracionS <> El valor es menor al mínimo permitido.
success ---> 0 ---> salida ---> voltaje --valor-> aclaracionT <> El valor es menor al mínimo permitido.
success ---> 0 ---> salida ---> voltaje --valor-> VR <> 0
success ---> 0 ---> salida ---> voltaje --valor-> VS <> 0
success ---> 0 ---> salida ---> voltaje --valor-> VT <> 0
success ---> 0 ---> salida ---> corriente --valor-> valorMin <> 0
success ---> 0 ---> salida ---> corriente --valor-> valorMax <> 0
success ---> 0 ---> salida ---> corriente --valor-> claseIr <> ok
success ---> 0 ---> salida ---> corriente --valor-> claseIs <> ok
success ---> 0 ---> salida ---> corriente --valor-> claseIT <> ok
undefinedundefinedundefinedsuccess ---> 0 ---> salida ---> corriente --valor-> IR <> 0
success ---> 0 ---> salida ---> corriente --valor-> IS <> 0
success ---> 0 ---> salida ---> corriente --valor-> IT <> 0
success ---> 0 ---> salida ---> carga --valor-> claseR <> sd
success ---> 0 ---> salida ---> carga --valor-> claseS <> sd
success ---> 0 ---> salida ---> carga --valor-> claseT <> sd
undefinedundefinedundefinedsuccess ---> 0 ---> salida ---> carga --valor-> CargaR <> 0
success ---> 0 ---> salida ---> carga --valor-> CargaS <> 0
success ---> 0 ---> salida ---> carga --valor-> CargaT <> 0
undefinedundefinedundefinedundefinedundefinedsuccess ---> 0 ---> estado --valor-> claseVoltBat <> ok
success ---> 0 ---> estado --valor-> claseNivelComb <> ok
success ---> 0 ---> estado --valor-> claseTempMotor <> ok
success ---> 0 ---> estado --valor-> claseEstado <> ok
success ---> 0 ---> estado --valor-> valorMinBateria <> 22
success ---> 0 ---> estado --valor-> valorMinFuel <> 30
success ---> 0 ---> estado --valor-> tempMinMotor <> 40
success ---> 0 ---> estado --valor-> Estado <> Automático
success ---> 0 ---> estado --valor-> VoltajeBateria <> 26,5
success ---> 0 ---> estado --valor-> NivelFuel <> 100
success ---> 0 ---> estado --valor-> TempMotor <> 56
success ---> 0 ---> estado --valor-> OilPres <> 5
success ---> 0 ---> estado --valor-> Alarma <> Null
success ---> 0 --valor-> id <> 14
success ---> 0 --valor-> nombre <> Generador GDC1
success ---> 0 --valor-> ip <> 10.48.100.50
undefinedundefinedundefinedundefined
Basicamente necesito acceder a valores como claseR, claseVr, claseVs, entre otros.

Desde ya gracias a los puedan dar una ayuda.
Saludos.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 14/06/2016 a las 15:02