scala_小函数

//这里入参是一个array数组,元素类型为字符串,最后返回一个可变的Map集合
def array2Map(array:Array[String]): mutable.Map[String, String] = {
    val receive = array
    val map:mutable.Map[String, String]=Map.empty
    //这里有个坑,,如果定义一个Map,而不给它赋值的话最好调用这个Map.empty
    //而不能val map:mutable.Map[String, String]=null
    //最后程序会抛错误
    //循环遍历数组元素
    for(i <- 0 to receive.length-1){
      val elem = receive.apply(i)
      //将元素按要求进行处理,split一下
      val sp = elem.toString.split(":")
      //长度不大于一表示字符串中没有“:”存在
      if(sp.length>1) {
        //调用+=方法,往Map中塞元素
        map.+=(sp.apply(0).toString -> sp.apply(1).toString)
      }
    }
    println(map)
    return map
  }
//下面这个就没啥好解释的了,不过有个地方就是转json的地方,搞了半天没,一开始是这样写的
//val alarmJson = (new Gson()).toJson(AlarmSend(alarm.patrol_abnormal_item))
//这个在转换的时候会出现一个问题,Map类型的,会返回一个空,没错啥也没有
//然后特地去查了一下,好像toJson方法不支持Map类型,然其他数据结构都是可以的
def test2(alarm: AlarmReceive):String = {
    val alarmofactivemqsend = alarm.patrol_abnormal_item
    val hostname = alarmofactivemqsend.hostname
    val process = alarmofactivemqsend.process
    val midAlarm = alarmofactivemqsend.alarm
    val ext = midAlarm.extrakey
    val extrakey = array2Map(ext)
    val systemtype = midAlarm.systemtype
    val alarmcode = midAlarm.alarmcode
    val status = midAlarm.status
    val level = midAlarm.level
    val con = midAlarm.content
    val content = array2Map(con)
    val malarm:MAlarm =MAlarm(systemtype,alarmcode,status,level,content)
    val st:alarmofactivemqsend=  alarmofactivemqsend(hostname, process, extrakey, malarm)
    val res = result1(st)
    //Json(DefaultFormats).write(res),要导这两个包
    //import org.json4s.native.Json
    //import org.json4s.DefaultFormats

    val alarmJson =Json(DefaultFormats).write(res)
    println(alarmJson)
    return alarmJson
  }

}

case class AlarmConf(isReport: String, systemtype: String, alarmcode: String)

case class MidAlarm(systemtype: String, alarmcode: String, status: String, level: String, category: String, content: Array[String], extrakey: Array[String])

case class AlarmInfo(hostname: String, process: String, aid: String, service: String, role: String, alarm: MidAlarm) {
  def apply(hostname: String, process: String, extrakey: mutable.Map[String, String], malarm: MAlarm): alarmofactivemqsend = {
    val ss = alarmofactivemqsend(hostname,process,extrakey,malarm)
    return ss
  }
}

case class AlarmSend(patrol_abnormal_item: AlarmInfo)

case class AlarmReceive(patrol_abnormal_item: AlarmInfo, overThreashold: Boolean)

case class alarmofactivemqsend(hostname: String, process: String, extrakey: Map[String,String],alarm:MAlarm)

case class MAlarm(systemtype: String, alarmcode: String, status: String, level: String, content: Map[String,String])

case class result1(alarmofactivemqsend:alarmofactivemqsend)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值