导航:首页 > 编程语言 > java遍历json数组

java遍历json数组

发布时间:2022-04-19 23:51:05

Ⅰ js或者java 遍历json数组 实现如下功能 跪求大神

/**
*json格式转树状结构
*@param {json} json数据
*@param {String} id的字符串
*@param {String} 父id的字符串
*@param {String} children的字符串
*@return {Array} 数组
*/
functiontransData(a,idStr,pidStr,chindrenStr){
varr=[],hash={},id=idStr,pid=pidStr,children=chindrenStr,i=0,j=0,len=a.length;
for(;i<len;i++){
hash[a[i][id]]=a[i];
}
for(;j<len;j++){
varaVal=a[j],hashVP=hash[aVal[pid]];
if(hashVP){
!hashVP[children]&&(hashVP[children]=[]);
hashVP[children].push(aVal);
}else{
r.push(aVal);
}
}
returnr;
}

以上方法完全可以满足你的 需求,Json属性结构的转换。

调用方法:

vara=[{
"a":"5",
"id":"0000",
"parent_id":"null"
},{
"a":"1",
"id":"1000",
"parent_id":"0000"
},{
"a":"2",
"id":"2000",
"parent_id":"0000"
},{
"a":"6",
"id":"1001",
"parent_id":"1000"
},{
"a":"6",
"id":"1002",
"parent_id":"1000"
},{
"a":"23",
"id":"2001",
"parent_id":"2000"
},{
"a":"11",
"id":"2002",
"parent_id":"2000"
}];
varb=transData(a,"id","parent_id","children");

那么b就是你需要的结构。transData方法在以后遇到类似结构的数据,都可以使用!

以上的所有方法都是JavaScript !

Ⅱ java foreach是否能对jsonarray进行遍历

java foreach能对jsonarray进行遍历。foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

拓展:

1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。

Ⅲ json数据请问怎么遍历

如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {

});

如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以

//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}

Ⅳ 请问怎样用Java语言遍历json对象,得到对象中的某个集合中的值

JSONObject jsonObject = new JSONObject(s);
然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中

Ⅳ java中把json怎么转换成数组

使用原生的解析:

String json = "...";

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:

for (int j = 0; j < array.length(); j++) {

obj = array.getJSONObject(j);

Data data = new Data();

mDataList.add(data);

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

以上内容参考:网络-数组

Ⅵ Java实现JSON多层遍历

JSONObject jsonObject = new JSONObject(s);
然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中
JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();while(iterator.hasNext()){
key = (String) iterator.next();
value = jsonObject.getString(key);
}

Ⅶ 如何用Java拼接JSON方式遍历整个树形节点

//是类似这种吗
//控制层使用JSONArrayjsonObject=JSONArray.fromObject();转换
Map<String,Object>map=newHashMap<String,Object>();

map.put("id","1");

map.put("text","实验外国语学校");

List<Map<String,Object>>fatherList=newArrayList<Map<String,Object>>();

List<Map<String,Object>>list=newArrayList<Map<String,Object>>();

for(Beanbean:list){

if("1".equals(list.getParent_level())){

Map<String,Object>map2=newHashMap<String,Object>();

map2.put("id",list.getId());

map2.put("text",list.getName());

list.add(map2);

}

}
map.put("children",list);

Ⅷ java 遍历json数组

你的这个问题确实需要点时间;

我个人的思路是用 HashMap 和 List 这两种数据结构;

如果你了解二叉数的话,在用我说的上面的两种数据结构;

是能解决问题的;

如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】

希望我的回答对您有所帮助,希望能采纳。

Ⅸ 跪求大神,用js或者java循环遍历json数组,实现下面功能,太难了,实在不会,跪求了(6)。

varorigin=[
{"first_id":1,"first_name":"中学","second_id":"1-1","second_name":"一年级","third_id":"1-1-1","third_name":"一年级一班","people":10,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-1","second_name":"一年级","third_id":"1-1-2","third_name":"一年级二班","people":11,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-2","second_name":"二年级","third_id":"1-2-1","third_name":"二年级一班","people":20,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-2","second_name":"二年级","third_id":"1-2-2","third_name":"二年级二班","people":21,"age":10,"parent":5},
{"first_id":2,"first_name":"高中","second_id":"2-1","second_name":"一年级","third_id":"2-1-1","third_name":"一年级一班","people":31,"age":10,"parent":5}
];

varfinalData=[];//最终的数据

transferData();//数据转换
console.log(finalData,JSON.stringify(finalData));

functiontransferData(){
origin.forEach(function(n){
varfirst=getRecordById(n.first_id,finalData);
if(first){
first.age+=n.age;
first.parent+=n.parent;
first.people+=n.people;

varsecond=getRecordById(n.second_id,first.children);
if(second){
second.age+=n.age;
second.parent+=n.parent;
second.people+=n.people;

varthird=getRecordById(n.third_id,second.children);
if(third){
//这里应该不会存在
}else{
second.children.push({
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
});
}
}else{
first.children.push({
id:n.second_id,
name:n.second_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
}]
});
}
}else{
finalData.push({
id:n.first_id,
name:n.first_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.second_id,
name:n.second_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
}]
}]
});
}
});
}

functiongetRecordById(id,data){
for(vari=0,n=data.length;i<n;i++){
if(data[i].id==id)returndata[i];
}
returnnull;
}

Ⅹ java json数组遍历层如下结果,跪求大神

<!DOCTYPEHTML>
<htmllang="en-US">
<head>
<metacharset="UTF-8">
<title>menu</title>
<styletype="text/css">
</style>
</script>
<scripttype="text/javascript">


varjson=[
{
"index":"name",
"id":4,
"colspan":1,
"sort":0,
"title":"你是",
"age":40
},
{
"id":4,
"colspan":3,
"sort":1,
"title":"我",
"age":40
},
{
"id":4,
"colspan":15,
"sort":2,
"title":"的",
"age":40
},
{
"index":"a",
"id":3,
"colspan":1,
"sort":0,
"title":"人",
"age":20
},
{
"index":"b",
"id":3,
"colspan":1,
"sort":1,
"title":"好",
"age":20
},
{
"id":3,
"colspan":5,
"sort":2,
"title":"马",
"age":40
},
{
"id":2,
"colspan":2,
"sort":0,
"title":"上",
"age":40
},
{
"id":2,
"colspan":2,
"sort":1,
"title":"就",
"age":40
},
{
"index":"f",
"id":2,
"colspan":1,
"sort":2,
"title":"额",
"age":25
},
{
"index":"c",
"id":1,
"colspan":1,
"sort":0,
"title":"一",
"age":30
},
{
"index":"d",
"id":1,
"colspan":1,
"sort":1,
"title":"个",
"age":25
}
];

vararray=[],obj={};
for(vari=0;i<json.length;i++)
{
vartemp=obj[json[i].id];
if(!temp)
{
obj[json[i].id]=[
json[i]
];
}
elseif(temp.length>0)
{
temp.push(json[i]);
temp.sort(function(a,b)
{
varx=parseFloat(a["sort"],10),y=parseFloat(b["sort"],10);
if(x>y)
{
return1;
}
elseif(x<y)
{
return-1;
}
else
{
return0;
}
});
}
}

for(varpinobj)
{
array.push(obj[p]);
}

array.sort(function(a,b)
{
varx=parseFloat(a[0].id,10),y=parseFloat(b[0].id,10);
if(x>y)
{
return-1;
}
elseif(x<y)
{
return1;
}
else
{
return0;
}
});
console.log(array)
</script>
</head>
<body>
</body>
</html>

阅读全文

与java遍历json数组相关的资料

热点内容
解压文件的密码怎么改 浏览:989
linuxlunch命令 浏览:273
程序员的自评 浏览:907
云服务器能上qq吗 浏览:469
小新pro14学生编程 浏览:783
浙江app如何切换个人账号 浏览:309
退休加减乘除运算法则 浏览:24
量比拉升指标源码 浏览:97
如何查app下载量 浏览:751
云平台为什么需要本地服务器 浏览:348
linuxoptions 浏览:870
linux命令下载文件 浏览:347
最要加密的pdf参数 浏览:785
单片机直流电机pid控制 浏览:57
如何让自己的微信相册加密 浏览:372
解压大神小游戏 浏览:800
要求是命令吗 浏览:772
想当程序员考什么证最有用 浏览:745
有效算法必须满足哪几个特性 浏览:67
开心一笑解压视频 浏览:149