zoukankan      html  css  js  c++  java
  • 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))

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

  • 相关阅读:
    分享Kali Linux 2016.2第41周镜像虚拟机
    Visual Studio工具栏中无法选择调试设备
    Xamarin.iOS编译出错
    Xamarin基础命名空间Microsoft.SqlServer.Server
    编译包含Google Play服务App的SDK版本问题
    解决Fiddler无法抓到手机的会话包
    Xamarin.Android编译CPU类型选择方式
    Delphi iOS
    Delphi Android
    CRC16-循环冗余校验
  • 原文地址:https://www.cnblogs.com/suanec/p/6647226.html
Copyright © 2011-2022 走看看