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

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

scala - fold,aggregate,iterator的更多相关文章

  1. mongo14-----group,aggregate,mapReduce

    group,aggregate,mapReduce 分组统计: group() 简单聚合: aggregate() 强大统计: mapReduce() db.collection.group(docu ...

  2. 72.Python中ORM聚合函数详解:Avg,aggregate,annotate

    聚合函数: 如果你用原生SQL语句,则可以使用聚合函数提取数据.比如提取某个商品销售的数量,那么就可以使用Count,如果想要知道销售的平均价格,那么就可以使用Avg. 聚合函数是通过aggregat ...

  3. spark快速开发之scala基础之5高阶函数,偏函数,闭包

    高阶函数 高阶函数就是将函数作为参数或者返回值的函数. object function { def main(args: Array[String]): Unit = { println(test(f ...

  4. scala学习笔记(8): 列表的map,flatMap,zip和reduce

    map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...

  5. scala之map,List,:: , +:, :+, :::, +++操作

    scala之map,List操作 1.Map操作 2.List操作 2.1Demo1 2.2Demo2 3.:: , +:, :+, :::, +++ 1.Map操作 Map(映射)是一种可迭代的键值 ...

  6. scala中的面向对象定义类,构造函数,继承

    我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...

  7. scala入门教程:scala中的面向对象定义类,构造函数,继承

    我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...

  8. Scala 流程空间,函数,异常处理

    1,)首先留意一下下边的代码块,他是怎么运行的,貌似在c#中他是出错的,不应该出现这样的写法的,但在scala中侧不然: package com.dt.study /** * The package ...

  9. [原创]Scala学习:for,function,lazy

    1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Rang ...

随机推荐

  1. classpath路劲

    1.指的是tomcat下的web-if下的classes路劲 2. 发布时,红框中的文件全都会放到classes下,并且如果出现重名,下面的有可能会覆盖上面的文件

  2. 【Oracle】强制关闭会话

    select sid, serial# from V$session where sid in (select sid from v$LOCK where TYPE in ('TM','TX')); ...

  3. 利用函数来得到所有子节点号& 利用函数来取得最高级的节点号

    在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...

  4. RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels

    和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却 ...

  5. php扩展AMQP,安装报错解决

    接下来来安装php扩展AMQP,安装了它以后,才能用PHP操作rabbitmq.wget https://pecl.php.net/get/amqp-1.4.0.tgztar -zxvf amqp-1 ...

  6. 给sharepoint某列表项单独赋予权限

    /// <summary> /// 列表项事件 /// </summary> public class EventReceiver2 : SPItemEventReceiver ...

  7. CentOS7--配置时间和日期

    CentOS7提供三个命令行工具,可用于配置和显示有关系统日期和时间的信息. timedatectl:Linux 7中的新增功能,也是systemd其中的一部分. date:系统时钟,也成为软件时钟, ...

  8. RabbitMq 之简单队列

    简单队列类似于我们的生产者,消费者, 一个生产者,对应一个消费者. 直接上代码: package com.j1.rabbitmq.simple; import com.j1.rabbitmq.util ...

  9. wireshark----linux

    1.[root@lc~]# tshark   Running as user "root" and group "root". This could be da ...

  10. 数据流-------C#文件和byte[]互换问题

    今天使用FileInfo.CopyTo的时候出现问题,当然并不是使用的问题,而是一些细节. 不过报错的时候,一度让我认为,copyto这个方法,给的参数必须是文件夹,而不是文件.所以就有了下面的查找 ...