首先需要在pom.xml中加入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.23</version>
</dependency>
package online.daliang.learning
import com.alibaba.fastjson.JSON
/**
* @author daliang on 2018/9/17
*/
object fastJson {
def main(args: Array[String]): Unit = {
val jsonString = "{\"et\":\"kanqiu_client_join\",\"vtm\":1435898329434,\"body\":{\"client\":\"866963024862254\",\"client_type\":\"android\",\"room\":\"NBA_HOME\",\"gid\":\"\",\"type\":\"\",\"roomid\":\"\"}," +
"\"time\":[{\"arrayKey\":\"arrayVal\"},{\"key2\":\"val2\"}]}"
println("Json String:--------")
println(jsonString)
println(jsonString.getClass)
val json = JSON.parseObject(jsonString)
println("Parse Json:--------")
println(json)
println(json.getClass)
println(json.getInteger("vtm"))
println(json.getString("et"))
println(json.getJSONObject("body"))
println(json.getJSONObject("body").getClass)
println(json.getJSONObject("body").getString("client"))
println("---------Array------------")
println(json.get("time"))
println(json.get("time").getClass)
println(json.getJSONArray("time"))
println(json.getJSONArray("time").getClass)
println(json.getJSONArray("time").get(0))
println(json.getJSONArray("time").get(0).getClass)
println(json.getJSONArray("time").getJSONObject(0))
println(json.getJSONArray("time").getJSONObject(0).getClass)
println(json.getJSONArray("time").get(0)) //虽然都是JSONObject,但这个没有 get 方法
//Error:(36, 46) value get is not a member of Object
// println(json.getJSONArray("time").get(0).get("arrayKey")) //虽然都是JSONObject,但这个没有 get 方法
println(json.getJSONArray("time").get(0).getClass)
println(json.getJSONArray("time").getJSONObject(0).get("arrayKey")) //虽然都是JSONObject,有 get 方法
println(json.getJSONArray("time").getJSONObject(0).get("arrayKey").getClass)
}
}
输出结果:
Json String:--------
{"et":"kanqiu_client_join","vtm":1435898329434,"body":{"client":"866963024862254","client_type":"android","room":"NBA_HOME","gid":"","type":"","roomid":""},"time":[{"arrayKey":"arrayVal"},{"key2":"val2"}]}
class java.lang.String
Parse Json:--------
{"body":{"client":"866963024862254","client_type":"android","gid":"","room":"NBA_HOME","roomid":"","type":""},"et":"kanqiu_client_join","time":[{"arrayKey":"arrayVal"},{"key2":"val2"}],"vtm":1435898329434}
class com.alibaba.fastjson.JSONObject
1379252570
kanqiu_client_join
{"client":"866963024862254","client_type":"android","gid":"","room":"NBA_HOME","roomid":"","type":""}
class com.alibaba.fastjson.JSONObject
866963024862254
---------Array------------
[{"arrayKey":"arrayVal"},{"key2":"val2"}]
class com.alibaba.fastjson.JSONArray
[{"arrayKey":"arrayVal"},{"key2":"val2"}]
class com.alibaba.fastjson.JSONArray
{"arrayKey":"arrayVal"}
class com.alibaba.fastjson.JSONObject
{"arrayKey":"arrayVal"}
class com.alibaba.fastjson.JSONObject
{"arrayKey":"arrayVal"}
class com.alibaba.fastjson.JSONObject
arrayVal
class java.lang.String
Process finished with exit code 0