Scala处理JSON

scala处理json可以调用JAVA常用json处理库来处理json
这里展示使用 fastjson 和json-lib来处理



json-lib处理json
需要的包
Scala处理JSON_第1张图片

import net.sf.json.JSONObject
object Json {
  def main(args: Array[String]): Unit = {
    val str2 = "{\"et\":\"kanqiu_client_join\",\"vtm\":1435898329434,\"body\":{\"client\":\"866963024862254\",\"client_type\":\"android\",\"room\":\"NBA_HOME\",\"gid\":\"\",\"type\":\"\",\"roomid\":\"\"},\"time\":1435898329}"
    val data=JSONObject.fromObject(str2);
    println(data)
    //获取json成员
    val et=data.get("et")
    println(et)
    //获取字符串类型json成员
    val et1=data.getString("et")
    println(et1)
    //获取整形类型,这样可以确定val vtm的数据类型,防止下面编译过程中报错.
    val vtm=data.getInt("vtm")
    //获取多级元素
    val client=data.getJSONObject("body").getString("client")
    print(client)
  }
}

fastjson处理json
fastjson处理json只需要fastjson的包就可以了

import com.alibaba.fastjson.JSON

object Json {
  def main(args: Array[String]): Unit = {
    val str2 = "{\"et\":\"kanqiu_client_join\",\"vtm\":1435898329434,\"body\":{\"client\":\"866963024862254\",\"client_type\":\"android\",\"room\":\"NBA_HOME\",\"gid\":\"\",\"type\":\"\",\"roomid\":\"\"},\"time\":1435898329}"
       val json=JSON.parseObject(str2)
       //获取成员
       val fet=json.get("et")
       //返回字符串成员
       val etString=json.getString("et")
       //返回整形成员
       val vtm=json.getInteger("vtm")
       println(vtm)
       //返回多级成员
       val client=json.getJSONObject("body").get("client")
       println(client)

在spark-steaming中,使用fast-json更加稳定,json-lib经常出现莫名问题,而且fastjson的解析速度更快.


你可能感兴趣的:(Scala)