I have a json data as
{"query":{"count":1,"created":"2014-04-28T07:33:09Z","lang":"en-US","results":{"rate":{"id":"USDCNY","Rate":"6.2489","Date":"4/28/2014","Time":"3:30am","Ask":"6.2494","Bid":"6.2484"}}}}
from above.,
I am interested only in
{"id":"USDCNY","Rate":"6.2489","Date":"4/28/2014","Time":"3:30am","Ask":"6.2494","Bid":"6.2484"}
data
I extracted it as a Map,
val translateAPI = url(yahooFinanceApiUrl)
val response = Http(translateAPI OK as.String)
response onComplete {
case Success(json) => parser(json)
case Failure(error) => println(" Error " +error)
}
def parser(data:String) = {
val languages = JSON.parseFull(data) match {
case Some(x:Map[String, Map[String, Map[String, Any]]]) => {
(x.get("query")).last.get("results").last.get("rate").last
}
case None => Nil
}
println(languages)
}
I got output as follows
Map(Rate -> 6.2532, Ask -> 6.2531, id -> USDCNY, Bid -> 6.2533, Date -> 4/28/2014, Time -> 6:15am)
From Here,
How can I bind a Map to scala properties,
class Currency(Rate:String, Ask:String, id:String, Bid:String, Date:String, Time:String)
Thanks in advance