在这种情况下,我正在从KV商店(Redis)读取数据。返回的数据格式如下。将键值字符串转换为Scala的方法地图
{ "key1":"value1", "key2":"value2", "key3":"value3" ...}
主要是String
和价值是Int
。我想将其转换为Map[String,Int]
我查看了json4s JSON API,我的当前代码如下所示。有没有更好/更简单/更干净的方法?
//send a async query to Redis to
val queryFuture = redis.zrangebyscore[String](tablename, keymin, keymax)
queryFuture.onComplete {
case Success(datarows) =>
println(s"Got %d rows of type %s for the query successfully".format(datarows.length))
val jsonrows = for { x <- datarows.toList }
yield parse(x)
println("Got json rows %d".format(jsonrows.size))
val mapdata = jsonrows.map(x => x.extract[Map[String,String]]).map(x => x.mapValues(_.toInt))
//need to do something with this data now
case Failure(y) =>
println(s" there was some failure in getting the data from Redis")
}
参见https://stackoverflow.com/questions/22723965/convert-a-mapstring-string-to-mapstring -int-in-scala – DNA