JS中循环遍历JSON格式数据

本文通过一个具体的示例展示了如何使用JavaScript遍历并填充JSON数据到网页表单中,包括特殊处理逻辑,如家庭卡号的转换。
//res为json格式数据
if (res != null) {
//循环遍历res
								for (var key in res) {
//遍历中key为字段名的字符串,如{"a":"b"}中的"a"
									if(key == "FamCardNo"){
//res[key]会取到字段名为key的字段值如{"a":"b"}key为a时res[key]的值为b
										$("#" + key + "").val(res[key]);
										$("#txtFamCardNo").val(changeCardId(res[key]))
									}else{
									$("#" + key + "").val(res[key]);
									}
								}
							}

JavaScript中,循环遍历JSON数据并处理可根据JSON数据是对象还是数组采用不同方法。 ### 遍历JSON对象 对于JSON对象,可使用`for...in`循环或者`Object.keys()`方法。`for...in`循环遍历对象的可枚举属性,示例代码如下: ```javascript const jsonObject = { "name": "John", "age": 30, "city": "New York" }; for (let key in jsonObject) { if (jsonObject.hasOwnProperty(key)) { console.log(key + ": " + jsonObject[key]); } } ``` 使用`Object.keys()`方法可获取对象的所有可枚举属性组成的数组,再结合`forEach()`方法遍历,示例代码如下: ```javascript const jsonObject = { "name": "John", "age": 30, "city": "New York" }; Object.keys(jsonObject).forEach(key => { console.log(key + ": " + jsonObject[key]); }); ``` ### 遍历JSON数组 对于JSON数组,可使用`for`循环、`for...of`循环或者`forEach()`方法。使用`for`循环遍历示例如下: ```javascript const jsonArray = [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 25 }, { "name": "Bob", "age": 35 } ]; for (let i = 0; i < jsonArray.length; i++) { console.log("Name: " + jsonArray[i].name + ", Age: " + jsonArray[i].age); } ``` 使用`for...of`循环遍历示例如下: ```javascript const jsonArray = [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 25 }, { "name": "Bob", "age": 35 } ]; for (let item of jsonArray) { console.log("Name: " + item.name + ", Age: " + item.age); } ``` 使用`forEach()`方法遍历示例如下: ```javascript const jsonArray = [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 25 }, { "name": "Bob", "age": 35 } ]; jsonArray.forEach(item => { console.log("Name: " + item.name + ", Age: " + item.age); }); ``` ### 从远程服务器获取JSON数据遍历处理 从远程服务器获取的JSON数据通常是字符串形式,需要先将其转换为JavaScript对象或数组,可使用`JSON.parse()`方法。示例代码如下: ```javascript const xhr = new XMLHttpRequest(); xhr.onreadystatechange = () => { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { const jsonData = JSON.parse(xhr.responseText); if (Array.isArray(jsonData)) { jsonData.forEach(item => { // 处理数组中的每个元素 console.log(item); }); } else { for (let key in jsonData) { if (jsonData.hasOwnProperty(key)) { // 处理对象的每个属性 console.log(key + ": " + jsonData[key]); } } } } } }; xhr.open('GET', 'https://www.example.com/api/data', true); xhr.setRequestHeader('Accept', 'application/json'); xhr.send(null); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值