Ⅰ 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>