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