[scala]JSON解析

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的类型定不下来,函数就没法把这个类型写死,这种解析方法还是需要我们之后进行一步模式匹配才能拿到我们需要的数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容