在scala项目开发的工程中,可能会经常有需要解析json串的应用场景。在这里介绍一种使用Gson()将json直接转成map的方法。
首先,需要添加Gson的依赖
<!-- Gson依赖 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
代码演示
def test():Unit= {
val requestStr: String = "[{\"name\":\"Johnson\",\"age\":18,\"hobby\":\"basketball\"},{\"name\":\"Jack\",\"age\":20,\"hobby\":\"football\"},{\"name\":\"Johnson\",\"age\":22,\"hobby\":\"swimming\"}]";
val jsonArray = JSON.parseArray(requestStr)
println(jsonArray)
println(jsonArray.getClass)
for (i <- 0 until jsonArray.size()) {
val jsonString = jsonArray.getJSONObject(i).toJSONString
val gson = new Gson()
var map = new util.HashMap[String, String]()
map = gson.fromJson(jsonString, map.getClass)
println("name:" + map.get("name"))
println("age:" + map.get("age"))
println("hobby:" + map.get("hobby"))
println("************************")
}
}
结果展示
name:Johnson
age:18.0
hobby:basketball
************************
name:Jack
age:20.0
hobby:football
************************
name:Johnson
age:22.0
hobby:swimming
************************