JS教程之循环遍历JSON数据

本文介绍了使用JavaScript遍历JSON数据的两种方法。一种是通过for循环遍历数组形式的JSON数据,另一种是通过解析字符串形式的JSON数据并进行遍历。这两种方法都展示了如何访问JSON数据中的具体值。
分享下JS 循环遍历 JSON数据的方法。

JSON数据如:
{"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"valu
e/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/"}]"}

js可以写成:
var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}]; 
for(var o in data){ 
alert(o); 
alert(data[o]); 
alert("text:"+data[o].name+" value:"+data[o].age ); 
}

或是
<script type="text/javascript"> 
function text(){ 
var json = {"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/"}]"} 
json = eval(json.options) 
for(var i=0; i<json.length; i++) 
{ 
alert(json[i].text+" " + json[i].value) 
} // www.jbxue.com
} 
</script>
在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); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值