迭代解决多层嵌套json 转map

来源:互联网 发布:java 异步网络请求 编辑:程序博客网 时间:2024/06/06 02:42

最近工作需要用到json 转map ,在网上看到了一个方法,但并不能解决多层嵌套json,在此对这个方法进行了迭代处理,解决这个问题

import net.minidev.json.{JSONObject}import net.minidev.json.parser.JSONParser

/**  * 将json转化为Map  * @param json 输入json字符串  * @return  * */def json2Map(json : String) : mutable.HashMap[String,Object] = {  val map : mutable.HashMap[String,Object]= mutable.HashMap()  val jsonParser =new JSONParser()  //将string转化为jsonObject  val jsonObj: JSONObject = jsonParser.parse(json).asInstanceOf[JSONObject]  //获取所有键  val jsonKey = jsonObj.keySet()  val iter = jsonKey.iterator()  while (iter.hasNext){    val field = iter.next()    val value = jsonObj.getOrElse(field,null).toString    if(value.startsWith("{")&&value.endsWith("}")){     //val value1 = mapAsScalaMap(jsonObj.getOrElse(field,null).asInstanceOf[util.HashMap[String, String]])      val value1 = json2Map(value)      map.put(field,value1)    }else{      map.put(field,value)    }  }  map}