spark解析json数据

一、scala.util.parsing.json.JSON

1
2
3
4
import scala.util.parsing.json.JSON
 
val data="""["美食|1.0"]"""
JSON.parseFull(data).get.asInstanceOf[List[String]]

  

二、com.alibaba.fastjson

1.添加依赖

1
2
3
4
5
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>

2.实例

1
2
3
import com.alibaba.fastjson
val resJson=fastjson.JSON.parseObject(jsonStr).get("extractResult")
//resJson为object,可以toString,如果是json的话可以继续调用parseObject解析

 

三、将List[Map]转化为json字符串

复制代码
import com.alibaba.fastjson.{JSON, JSONObject}
import com.alibaba.fastjson.serializer.SerializeFilter

val sortanchor=List(("周杰伦",10,5,1),("周杰伦专辑",8,2,1))

val jsonList=sortanchor.map(t=>{
        val query=t._1
        val pv=t._2
        val label=t._4
        val json=new JSONObject()
        json.put("query",query)
        json.put("pv",pv)
        json.put("label",label)
        val feaJsonStr=json.toJSONString
        feaJsonStr
      })

val jsonArray=jsonList.toArray

val anchorJsonString=JSON.toJSONString(jsonArray, null.asInstanceOf[Array[SerializeFilter]])
复制代码

 

四、将json字符串转化为List[Map]

1
2
3
4
5
6
7
8
9
10
11
12
13
import scala.util.parsing.json.JSON
 
val rec="""["{\"pv\":10,\"query\":\"周杰伦\",\"label\":1}","{\"pv\":8,\"query\":\"周杰伦专辑\",\"label\":1}"]"""
 
val jsonList=JSON.parseFull(rec).get.asInstanceOf[List[String]]
 
val recList=jsonList.map(t=>{
        val queryMap=JSON.parseFull(t).get.asInstanceOf[Map[String,String]]
        val query=queryMap.getOrElse("query","null")
        val pv=queryMap.getOrElse("pv",-1).asInstanceOf[Double].toInt
        val label=queryMap.getOrElse("label",-1).asInstanceOf[Double].toInt
        (query,pv,label)
      })

  

 

posted @   HappierJoanne  阅读(421)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(二):用.NET IoT库
· 几个自学项目的通病,别因为它们浪费了时间!
· 在外漂泊的这几年总结和感悟,展望未来
· .NET 数据拷贝方案选择
· .net工作流elsa-书签
点击右上角即可分享
微信分享提示