2012-06-07 14 views
7

Quiero usar los datos provistos por https://raw.github.com/currencybot/open-exchange-rates/master/latest.jsonextracción de datos de objeto JSON en jQuery o JS

Como una prueba inicial, he creado una versión reducida de este como un objeto en línea:

var obj = [ 
{ 
    "disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! More info: http://openexchangerates.org/terms/", 
    "license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Full license info: http://openexchangerates.org/license/", 
    "timestamp": 1339036116, 
    "base": "USD", 
    "rates": { 
     "EUR": 0.795767, 
     "GBP": 0.645895, 
     "JPY": 79.324997, 
     "USD": 1 
    } 
}]; 

Todo lo que quiero hacer es de alguna manera consultar/grep/filtrar el objeto json con, por ejemplo, "EUR" como los criterios y hacer que devuelva una variable llamada 'tasa' con un valor de '0.795767' como resultado.

He examinado las funciones grep y filtro de JQuery, pero no puedo averiguar cómo aislar solo la sección 'rates' del objeto y luego obtener la velocidad que deseo.

Respuesta

18
var obj = [ 
{ 
    "disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! More info: http://openexchangerates.org/terms/", 
    "license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Full license info: http://openexchangerates.org/license/", 
    "timestamp": 1339036116, 
    "base": "USD", 
    "rates": { 
     "EUR": 0.795767, 
     "GBP": 0.645895, 
     "JPY": 79.324997, 
     "USD": 1 
    } 
}]; 

obj[0].rates.EUR; // output: 0.795767 

o

obj[0].rates['EUR']; output: //0.795767 

DEMO

Si desea aislar las tasas en otra variable y utilizar esa variable a continuación, tratar como siguiente:

var rates = obj[0].rates; 

Ahora,

rates.EUR; 
rates.GBP; 

y así sucesivamente.

+0

Excelente, eso es justo lo que quería. No tenía idea de que sería tan directo. – Joseph

+0

my json data is '{" 0 ": {" level1 ":" done "," level2 ":" done "," level3 ":" no "}}' ¿cómo se puede extraer esto en cada variable? intenté de esta manera usando el método '$ .each' pero devuelve indefinido' var level1 = ele [0] .level1; ' – 151291

5

También puede usar la función JSON.parse() de Javascript para convertir la Cadena JSON en el objeto JavaScript JSON.

var JSONObject = JSON.parse("{'value1' : 1, 'value2' : 2}"); 
console.log(JSONObject.value1); // Prints '1'.. 
+0

me es dado" undefined ". ayuda por favor –

Cuestiones relacionadas