scala - fold,aggregate,iterator
import org.json4s._ import org.json4s.jackson._ import org.json4s.jackson.JsonMethods._ import org.json4s.JsonDSL._ import org.json4s.JsonDSL.map2jvalue // or //import org.json4s.JsonDSL.WithDouble._ //import org.json4s.JsonDSL.WithBigDecimal._ //import scala.io.Source //import scala.collection.JavaConverters._ //import scala.collection.mutable.Buffer import java.io.{File,PrintWriter} import java.util.Date implicit val formats = Serialization.formats(ShortTypeHints(List()))
使用json4s进行json操作,踩了scala一个坑。
val data = readConf(file) val t = data.head val r = "Response" val n = "Title" val p = "Plot" val contents = data.filter( row => (row \ r).extract[String].toBoolean).filter(row => (row \ p).extract[String] != "N/A") val plots = contents.map{ row => val title = (row \ n).values.toString val plots = (row \ p) title -> plots }
三种方式实现类元素的拼接:要注意操作符函数的参数顺序。
// val plotsIter = plots.iterator // var rstObj = plotsIter.next ~ plotsIter.next // while(plotsIter.hasNext) rstObj = plotsIter.next ~ rstObj val (head,tail) = plots.splitAt(2) val rstObj = tail.foldRight(head.head ~ head.last)(_ ~ _) val rstObj = tail.aggregate(head.head ~ head.last)(_ ~ _, _ ~ _)
fold对操作符参数传参顺序和定义顺序一致。
fold(x)((a,b)=>foo(a,b))
先占坑,等忙过这阵子,具体给出试错经过和结论分析。
澄轶: suanec -
http://www.cnblogs.com/suanec/
友链:marsggbo
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
点个关注吧~
http://www.cnblogs.com/suanec/
友链:marsggbo
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
点个关注吧~