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) }) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(二):用.NET IoT库
· 几个自学项目的通病,别因为它们浪费了时间!
· 在外漂泊的这几年总结和感悟,展望未来
· .NET 数据拷贝方案选择
· .net工作流elsa-书签