JSON解析
import scala.util.parsing.json.JSON
val jsonSome = JSON.parseFull(jsonStr)//将JSON格式字符串解读成Some
val jsonAny = jsonSome.get //将some格式中的内容get出来,得到一个any类型的值
jsonAny match {
case jsonMap: Map[String, String] =>jsonMap//匹配成功返回我们需要的Map类型数据
case _ => {println("匹配失败");null}//匹配失败返回Null值
}
函数 JSON.parseFull(jsonStr)
对JSON字符串进行解析会得到一个Some(Any)。Any的类型其实为Map[String,Any]类型,Map里面的key和value对应JSON中的key和value。之后我们需要对Some(Any)进行get操作,得到其中的Any,然后在对Any进行模式匹配得到我们最终需要的Map[String,String]类型。
一开始我很奇怪,我这个Json解析出来就应该是个Map[String,String]格式的数据,为什么一开始给个Any,后面还是个Map[String,Any]呢,这样还要模式匹配过才能拿到最终结果不是很烦。
后来仔细想过之后,想到Json解析出来的返回类型是不确定的,有可能是个Map[String,String],还有可能是Map[String,Map[String,String]]。这样这个Map的类型定不下来,函数就没法把这个类型写死,这种解析方法还是需要我们之后进行一步模式匹配才能拿到我们需要的数据。