⑴ js 怎麼遍歷json對象所有key及根據動態key獲取值
json是種常用數據傳輸格式,js怎麼解析json格式的數據呢,請參閱下面的代碼:
[html] view plain print?
<html>
<head>
<scripttype="text/javascript">
vardata='{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主護使有什麼用?"},{"id":"3","question":"角斗場在哪?"},{"id":"4","question":"北部斷層在哪?"},{"id":"5","question":"歡樂令有什麼用?"},{"id":"6","question":"令牌積分有什麼用?"},{"id":"7","question":"南部斷層在哪?"},{"id":"8","question":"大妖魔令牌交給誰?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什麼用?"}]}}';
functionShowData(){
varobj=eval("("+data+")");
alert("return_code:"+obj["return_code"]);
alert("return_message:"+obj["return_message"]);
alert("第一個問題id:"+obj["data"]["data"][0]["id"]);
alert("第一個內容id:"+obj["data"]["data"][0]["question"]);
}
</script>
</head>
<bodyonload="ShowData();">
{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主護使有什麼用?"},{"id":"3","question":"角斗場在哪?"},{"id":"4","question":"北部斷層在哪?"},{"id":"5","question":"歡樂令有什麼用?"},{"id":"6","question":"令牌積分有什麼用?"},{"id":"7","question":"南部斷層在哪?"},{"id":"8","question":"大妖魔令牌交給誰?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什麼用?"}]}}
</body>
</html>
⑵ js遍歷json對象讀數據
通用方法:版
function printAll(obj){
for(var k in obj){
var v=obj[k];
if(typeof(v)!="object"){
document.writeln(k+"是權"+v+"<br/>");
}else{
printAll(v);
}
}
}
printAll(json);
⑶ js遍歷json對象為什麼多了個undefined
因為你沒有給str1初值, 所以str1一開始是undefined
然後undefined和字元串做+操作會把undefined轉換為字元串'undefined'後拼接
從而得到你不期望的結果
你需要
varstr1=''
for(keyinjson1){
str1+=key+""+json1[key]+"";
};
⑷ 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 對象數據
你這里的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數組
用 for in 循環 遍歷
varstr='[{"name":"宗2瓜","num":"1","price":"122"},{"name":"宗呱呱","num":"1","price":"100"}]';
varxqo=eval('('+str+')');
for(variinxqo){
alert(xqo[i].name);
}
⑺ javascript 如何遍歷json格式數據
<script type="text/javascript">
var jsn=
[{"Id":14,"Name":"政治","ParentId":0},{"Id":15,"Name":"法律","ParentId":0},{"Id":16,"Name":"科技","ParentId":0},{"Id":17,"Name":"娛樂","ParentId":0},{"Id":18,"Name":"時尚","ParentId":0},{"Id":19,"Name":"旅遊","ParentId":0},{"Id":20,"Name":"教育","ParentId":0},{"Id":21,"Name":"環保","ParentId":0},{"Id":22,"Name":"社會","ParentId":0},{"Id":23,"Name":"心理","ParentId":0},{"Id":24,"Name":"中醫","ParentId":0},{"Id":25,"Name":"西醫","ParentId":0},{"Id":26,"Name":"社交","ParentId":0},{"Id":27,"Name":"IT","ParentId":0},{"Id":28,"Name":"汽車","ParentId":0}];
document.write('<table border="1">');
document.write('<tr>');
document.write('<td>id</td>');
document.write('<td>name</td>');
document.write('<td>parentid</td>');
document.write('</tr>');
var len = jsn.length;
for(var i=0;i<len;i++) {
document.write('<tr>');
document.write('<td>'+jsn[i]['Id']+'</td>');
document.write('<td>'+jsn[i]['Name']+'</td>');
document.write('<td>'+jsn[i]['ParentId']+'</td>');
document.write('</tr>');
}
document.write('</table>');
</script>
⑻ 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>
⑼ JavaScript遍歷JSON數據( {k:」key1",v:"value1"} )中鍵值的
var json = {a: "aaaa",v: 'vvvv'};
for(var k in json) {
console.log('key is ' + k);
console.log('value is' + json[k]);
}
⑽ 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;}