导入jar包
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.4.7</version>
</dependency>
val str2 = "{\"name\":\"jeemy\",\"age\":25,\"phone\":\"1501469230058\"}"
//构建json工具对象
val parser=new JSONParser(JSONParser.BIG_DIGIT_UNRESTRICATED)
//简单对象解析
val jo=parser.parse(str2,classOf[JSONObject])
val name=jo.getAsString("name")
val age=jo.getAsNumber("age")
val phone=jo.getAsString("phone")
println(s"$name,$age,$phone")
//解析数组
val array: JASONArray =parser.parse(str.classOf[JSONArray])
array.forEach(obj=>{
val o=obj.asInstanceOf[JSONObject]
println(s"${o.getAsString("subject")},${o.getAsNumber("score")}")
})
object Test {
def main(args: Array[String]): Unit = {
//scala 解析json
//1、解析成对象
/* val str2 = "{\"name\":\"jeemy\",\"age\":25,\"phone\":\"1501469230058\",\"score\":{\"subject\":\"scala\",\"score\":88}}"
val parser = new JSONParser(JSONParser.BIG_DIGIT_UNRESTRICTED)
val jo=parser.parse(str2,classOf[JSONObject])//classOf获取类型的Class信息
val name=jo.getAsString("name")
val age=jo.getAsNumber("age")
val phone=jo.getAsString("phone")
val str=parser.parse(jo.getAsString("score"),classOf[JSONObject])
println(s"$name,$age,$phone")
println(str.getAsString("subject"))
println(str.getAsString("score"))*/
//2/解析数组
val str3 = "{\"name\":\"jeemy\",\"age\":25,\"phone\":\"1501469230058\",\"scores\":[{\"subject\":\"scala\",\"score\":88},{\"subject\":\"spark\",\"score\":88}]}"
val parser = new JSONParser(JSONParser.BIG_DIGIT_UNRESTRICTED)
val jo2=parser.parse(str3,classOf[JSONObject])
val str2=jo2.getAsString("scores")
val array: JSONArray = parser.parse(str2, classOf[JSONArray])
array.forEach(obj=> {
val o = obj.asInstanceOf[JSONObject]//scala 的强制类型转换
println(s"${o.getAsString("subject")},${o.getAsNumber("score")}")
})
}
}