① js遍歷json對象順序問題,使用for in遍歷json對象發現排序了,和本來的順序不一樣,有什麼解決辦法
vara={
"3":'第一',
"1":'第二',
"5":'第三',
};
vartmp=JSON.stringify(a);
tmp=tmp.replace(/([{,])([^:]+):([^:,]+)(?=[,}])/g,"$1$3:$2");
varobj=eval("("+tmp+")");
for(varpinobj){
console.info(obj[p]+":"+p);
}
② js 怎麼遍歷json中的json對象里的數據
var jsondata = yourdata;
for(var x in jsondata){
document.write(x+"="+jsondata[x]);
}
如果是jsonarray就外面套一層內for即可容
var jsonarray =yourarray;
for(var i =0;i<jsonarray.length;i++){
var jsonobj = jsonarray[i];
for(var x in jsonobj){
document.write(x+"="+jsonobj[x]);
}
}
③ js怎樣遍歷json數組或對象並讀取相應的數據
看這樣一段函數定義的代碼就明回白了function json_to_format_string(obj,deep){ var html = ""; var blank_string = ""; for (var i = 0; i < deep; i++) { 答blank_string += " "; }; for(var name in obj){ if (typeof(obj[name])=="object") { html += blank_string + name +": "+ "
"; html += json_to_format_string(obj[name],deep+1); }else{ html += blank_string + name +": "+ obj[name]+"
"; } } return html;}
④ js遍歷json數組,求大神指導
<!doctypehtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="Generator"content="EditPlus®">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
<title>Document</title>
</head>
<body>
</body>
<script>
varjson1=[
{"age":5,"num":2,"people":3,"class":9},
{"age":1,"num":3,"people":2,"class":8},
{"age":4,"num":6,"people":5,"class":3}
],
json2=[
{"field":"age","typle":"sum","title":"ss"},
{"field":"num","typle":"sum","title":"ss"},
{"field":"people","typle":"sum","title":"ss"},
{"field":"class","typle":"nosum","title":"ss"}
],
typeArr={'sum':'sum','nosum':''};
functiongetData(json1,json2,typeArr){
varj=0,
len1=json1.length,
len2=json2.length,
o={},
json3=[];
for(;j<len2;j++){
varj2=json2[j];
if(j2.field){
vartype=typeArr[j2.typle],
num=-1,
i=0;
for(varii=0;ii<json3.length;ii++){
varj3=json3[ii];
if(j3.type===type){
o=clone(j3);
num=ii;
}
}
for(;i<len1;i++){
varj1=json1[i];
if(type==='sum'){
o[j2.field]=o[j2.field]?o[j2.field]+j1[j2.field]:j1[j2.field];
}
}
if(type){
o.type=type;
if(num!==-1){
json3[num]=o;
o={};
}else{
json3[json3.length]=o;
}
}
}
}
returnjson3;
}
//深
functionclone(o){
vark,
ret=o,
b;
if(o&&((b=(oinstanceofArray))||oinstanceofObject)){
ret=b?[]:{};
for(kino){
if(o.hasOwnProperty(k)){
ret[k]=clone(o[k]);
}
}
}
returnret;
}
//getresult
console.log(getData(json1,json2,typeArr));
</script>
</html>
⑤ js/jQuery如何按順序遍歷JSON
寫成這樣不就行了嗎?
cfg=[
{'2':{'title':'title2','name':'name2'}},
{'1':{'title':'title1','name':'name1'}},
{'4':{'title':'title4','name':'name4'}},
{'3':{'title':'title3','name':'name3'}}
]
⑥ js怎麼遍歷json數組對象, 如何遍歷出content裡面的數值,格式如下
vartypeArr=newArray();
for(vari=0;i<infoList.length;i++)
{
typeArr.push(infoList[i].type)//獲取到type的值
for(varj=0;j<infoList[i].typeList.length;j++)
{
varinfo=infoList[i].typeList[j];
alert(info.ID);
alert(info.startDate);
alert(info.endDate);
alert(info.altNum);
alert(info.childrenNUm);
}
}
這樣就遍歷出了所有的專數據屬了
⑦ js遍歷json數組,求大神指導(2)
<script src="http://vod.xunlei.com/library/jquery-1.7.2.min.js"></script>
<script>
var json1=[{"age":5,"num":2,"people":3,"class":9},{"age":1,"num":3,"people":2,"class":8},{"age":4,"num":6,"people":5,"class":3}];
var json2=[{"field":"age","typle":"sum","title":"ss"},{"field":"num","typle":"sum","title":"ss"},{"field":"people","typle":"sum","title":"ss"},{"field":"class","typle":"nosum","title":"ss"}];
//如上json1、json2兩個數組,拿json1里age、num等屬性去json2里遍歷,若json2里field的值和json1的屬性相等並且其typle的值為num,就計算json1里該屬性的和最終再拼接成下面的樣子
//var json3=[{"name":"求和","age":10,"num":11,"people":10}];
function test(json1,json2){
var result=[],resultJson={"name":"求和"};
var getSum=function(field){
var sum=0;
for(var s in json1){
sum+=json1[s][field]||0;
}
return sum;
}
for(var p in json2){
if(json2[p]["typle"]=="sum"){
$.extend(resultJson,$.parseJSON('{\"'+ json2[p]["field"] + '\":' + getSum(json2[p]["field"]) + '}'));
}
}
result.push(resultJson);
return result;
}
json3=test(json1,json2);
//檢查一下結果
temp=""
for (var t in json3[0]){
temp+=t + "=" + json3[0][t] +",";
}
alert(temp.slice(0,-1)); //顯示:name=求和,age=10,num=11,people=10
</script>
⑧ js 遍歷 json 對象數據
你這里的jsonstr本身就已經是對象了,而json只是字元串,也就是說對方傳遞過來的字元串而已。
應該寫成
var jsonStr = "{qiyi:'mp4',tudou:'3gp',youku:'mp4'}";
這樣可以表示jsonStr是一個字元串,而現在要jsonStr去執行一下就可以了!
如:
var c = eval(jsonStr);
然後就可以調用了!如c.qiyi等等。不過這里不太好理解的,eval就是將jsonStr字元串當指令執行了,將執行結果傳遞給c而已。換一句方式可能會更好的理解的!
eval(" var c = "+jsonStr+";");
也就是說重新組合一個語句,這樣可以直接使用c.qiyi了!
但其實是一樣的道理的,只不過很少人會用到第二種!因為如果eval沒有順利執行時,第二種會出現錯誤,而第一種則會出現undefined的結果,第一種與第二種的區別就是不管是否空值,第一種c對象是存在的!而第二種卻未必見得!第二種方案下,執行了一個語句,然後就感覺「憑空」開始使用一個對象了!然後這樣雖是不好,其中是說明下邊的語句都依賴於eval這樣的一個細節語句,所以不是很多的!
也就是說:
var c = eval("{qiyi:'mp4',tudou:'3gp',youku:'mp4'}");
就是將json執行後的結果。由此可以看出你對數據傳遞上還有些不理解的!
⑨ JS遍歷Json字元串中鍵值對先轉成JSON對象再遍歷
1、將Json字元串轉換成JSON對象
var
t='{"firstName":
"cyra",
"lastName":
"richardson"}';
var
obj
=
eval('('
+
t
+
')');
2、遍歷讀取鍵回值答對
for(var
str
in
obj){
alert(str+'='+obj[str]);
}
⑩ avalon.js怎麼遍歷json
JSON中,有兩種結構:對象和數組。
1.對象
一個對象以「{」開始,「}」結束。每個「key」後跟一「:」,「『key/value』 對」之間運用 「,」分隔。
packJson = {"name":"caibaojian.com", "password":"111"}
2.數組
packJson = [{"name":"caibaojian.com", "password":"111"}, {"name":"tony", "password":"111"}];
數組是值的有序集合。一個數組以「[」開始,「]」結束。值之間運用 「,」分隔。
JSON對象和JSON字元串的轉換
在數據傳輸流程中,json是以文本,即字元串的形式傳遞的,而JS操作的是JSON對象,所以,JSON對象和JSON字元串之間的相互轉換是關鍵。例如:
JSON字元串:
var jsonStr = '{"name":"caibaojian", "password":"1111"}';
JSON對象:
var jsonObj = {"name":"caibaojian.com", "password":"1111"};
1、String轉換為Json對象
var jsonObj = eval('(' + jsonStr + ')');
2.Json對象轉換為String字元串
var jsonStr = jsonObj.toJSONString();
jQuery遍歷json對象
grep
<script type='text/javascript' src="/jquery.js"></script>
<script type="text/javascript">
$().ready(
function(){
var array = [1,2,3,4,5,6,7,8,9];
var filterarray = $.grep(array,function(value){
return value > 5;//篩選出大於5的
});
for(var i=0;i<filterarray.length;i++){
alert(filterarray[i]);
}
for (key in filterarray){
alert(filterarray[key]);
}
}
);
</script>