• scala


      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))

    先占坑,等忙过这阵子,具体给出试错经过和结论分析。

  • 相关阅读:
    使用ArcMap将Excel转换成Shapefile文件
    vue(9)事件监听修饰符
    vue(8)事件监听v-on
    vue(7)computed属性的使用
    vue(6)v-bind指令
    vue(5)插值{{}}和一些简单指令v-pre v-once v-text
    C++ 插入迭代器insert iterator
    敏捷开发
    java-------2.interface接口类,实现接口
    java-------1.抽象类,抽象方法
  • 原文地址:https://www.cnblogs.com/suanec/p/6647226.html
Copyright © 2020-2023  润新知