首页 > 编程知识 正文

java将json字符串转换成数组,c语言json库

时间:2023-05-04 22:09:12 阅读:36099 作者:4946

直接上传代码:

//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 );

}

}

返回图;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。