2012-06-07 15 views
7

voglio usare i dati di valuta forniti da https://raw.github.com/currencybot/open-exchange-rates/master/latest.jsonestrazione di dati da oggetto JSON in jQuery o JS

Come un test iniziale, ho creato un versione ridotta di questo come oggetto in linea:

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 
    } 
}]; 

Tutto ciò che voglio essere in grado di fare è in qualche modo query/grep/filter l'oggetto json con, ad esempio, "EUR" come criterio e restituire una variabile chiamata 'rate' con un valore di '0.795767' di conseguenza.

Ho esaminato le funzioni di grep e filtro di JQuery, ma non riesco a capire come isolare solo la sezione 'rate' dell'oggetto e quindi ottenere la frequenza desiderata.

risposta

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

Se si desidera isolare i tassi in un'altra variabile e utilizzare tale variabile quindi provare come segue:

var rates = obj[0].rates; 

Ora,

rates.EUR; 
rates.GBP; 

e così via.

+0

Eccellente, è proprio quello che volevo. Non avevo idea che sarebbe stato così semplice. – Joseph

+0

i miei dati json sono '{" 0 ": {" level1 ":" done "," level2 ":" done "," level3 ":" no "}}' Come si può estrarre questo in ogni variabile? ho provato in questo modo usando il metodo '$ .each' ma restituisce un valore non definito' var level1 = ele [0] .level1; ' – 151291

5

È inoltre possibile utilizzare la funzione JSON.parse() di Javascript per convertire la stringa JSON in oggetto JavaScript JSON.

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

mi viene dato" undefined ". aiuto per favore –