scala处理json可以调用JAVA常用json处理库来处理json
这里展示使用
fastjson 和json-lib来处理
json-lib处理json
需要的包
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的解析速度更快.