javascript遍历php数据,javascript遍历json对象数据的方法

最近在修改一个HTML页面的JS的时候遍历JSON对象,却怎么也调试不通过。在获取 json.length的时候总是undefined,各种调试不对,于是网上搜了下,发现JSON对象根本没有length属性,一些比较权威的参考文档也没有提到json有length这个属性。但是奇怪的是我明明记得json有length,而且还用过,程序能够正确运行。

经过一番细细研究,发现在JSON中,有两种结构:对象和数组,对象是没有length这个属性,而数组结构是有的,下面分别说下这两种结构之间的区别和遍历方式。

1.对象

一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。

packJson = {"name":"phpernote", "password":"111"}

原生Js遍历json对象的方法

myJson = {"name": "phpernote", "password": "1111"};

for (var val in myJson) {

alert(val + " " + myJson[val]);//输出如:name

}

2.数组

packJson = [{"name":"phpernote", "password":"111"}, {"name":"tony", "password":"111"}];

数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

原生Js遍历json数组的方法

无规律json数组:

var json = [{dd: 'SB', AA: '东东', re1: 123}, {cccc: 'dd', lk: '1qw'}];

for (var i = 0, l = json.length; i < l; i++) {

for (var key in json[i]) {

alert(key + ':' + json[i][key]);

}

}

有规律json数组:

packJson = [

{"name": "nikita", "password": "1111"},

{"name": "tony", "password": "2222"}

];

for (var p in packJson) {//遍历json数组时,这么写p为索引,0,1

alert(packJson[p].name + " " + packJson[p].password);

}

也可以这样:

for(var i = 0; i < packJson.length; i++){

alert(packJson[i].name + " " + packJson[i].password);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
遍历一个JSON对象,可以使用JavaScript中的for-in循环。首先,将获取的数据转换为JSON对象,可以使用JSON.parse(data)方法或者jQuery库中的jQuery.parseJSON(json)方法。接下来,使用for-in循环遍历JSON对象,通过得到的key和value来进行相应的操作。如果value是一个对象,可以使用typeof value == "object"进行判断,并使用递归的方式遍历内部的对象。以下是一个示例方法来获取JSON对象中的值: ``` function getJsonValue(obj, name){ var result = null; var value = null; for(var key in obj){ value = obj[key]; if(key == name){ return value; } else { if(typeof value == "object"){ result = getJsonValue(value, name); } } } return result; } var jsonobj = { "semantic":{ "taskId":"8.4.3" }, "history":"cn.xxxx.fund" }; var taskId = getJsonValue(jsonobj, "history"); console.log(taskId); ``` 这个方法将通过递归的方式遍历JSON对象,根据给定的name参数,返回对应的值。在这个示例中,我们使用了jsonobj***fund"作为结果输出到控制台。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jsjson对象遍历和其他方法处理](https://blog.csdn.net/u012409048/article/details/115920371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [js 遍历 JSON数据](https://blog.csdn.net/fox_bert/article/details/100594710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值