直接上传代码:
//json字符串转换为map
publicstaticmapstringtomap (字符串字符串)。
if(strinput==null ) {
返回空值;
}
JsonNode jsonNode=null;
try {
objectmapperobjectmapper=new对象映射器(;
JSON node=object mapper.read tree (strinput; 将json字符串转换为jsonNode
}catch(ioexceptionex ) {
system.out.println(JSON数据格式异常);
//logger.getlogger (new class.class.getname ) ).log ) level.severe,null,ex );
返回空值;
}
返回节点(JSON node;
}
//jsonNode迁移到地图
publicstaticmapjsontomap (jsonnodejsonnode ) {
if(Jsonnode==null ) {
返回空值;
}
iteratorparamsiterator=JSON node.getfield names (; 获取//迭代器并保存jsonNode的所有密钥
Map map=new HashMap (;
while(Paramsiterator.Hasnext () ) ) )。
string param name=params iterator.next (; 得到一个//key
jsonnodejsonsonnode=JSON node.get (param name );
对于if(jsonnode.isint () ) int类型的数据
map.put(paramname,jsonSonNode.getIntValue () );
}elseif(jsonsonnode.islong () )对于长类型的数据
map.put(paramname,jsonSonNode.getLongValue () );
}elseif(jsonsonnode.istextual () ) /对于文本
map.put(paramname,jsonSonNode.getValueAsText () );
}elseif(jsonsonnode.isobject () (/如果适用)
maptempmap=jsontomap (jsonsonnode; //递归调用
If (时间图!=空) {
map.put(paramname,tempMap );
}
}elseif(jsonsonnode.isarray ) (/对于数组
iteratornodeiterator=jsonsonnode.get elements (; //获取数组的值
arraylisttempmaplist=new ArrayList (;
wile (节点迭代器. hasnext () ) ) ) )。
jsonnodetempjsonnode=node iterator.next (; //获得数组中的对象
maptempm=jsontomap (tempjsonnode; //递归调用
if(tempm!=空) {
tempmaplist.add(tempm;
}
}
map.put(paramname,tempMap );
}
}
返回图;
}