您的位置:首页 > Web前端 > JavaScript

迭代解决多层嵌套json 转map

2017-11-24 10:55 465 查看
最近工作需要用到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()
va
4000
l 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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json 迭代