欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

FastJSON在Scala中的应用

程序员文章站 2022-07-13 23:45:10
...

首先需要在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