json格式 Js里循环遍历json格式数据

本文介绍了如何使用JavaScript处理JSON格式的数据,通过示例展示了如何遍历和获取JSON数组及对象中的具体信息。

什么是JOSN

http://www.cnblogs.com/gooddasenlin/archive/2009/05/31/1493116.html

 

 

 

 

var obj = [ {"date":"2010-12-19", "price":123},
 {"date":"2010-12-12", "price":33},
 {"date":"2010-12-21", "price":444}
 ];

for(var i=0;i<obj.length;i++){
  if(obj[i].date == '2010-12-12'){
     return obj[i].price
  }
}

 

在 JavaScript 中,可以使用多种方法来循环遍历 JSON 数据并更换字段名,以下是几种常见的实现方式。 ### 方法一:使用 `for...in` 循环 ```javascript // 示例 JSON 数据 const jsonData = { "oldField1": "value1", "oldField2": "value2" }; // 定义字段名映射 const fieldMap = { "oldField1": "newField1", "oldField2": "newField2" }; const newJsonData = {}; for (const key in jsonData) { if (jsonData.hasOwnProperty(key)) { const newKey = fieldMap[key] || key; newJsonData[newKey] = jsonData[key]; } } console.log(newJsonData); ``` 在上述代码中,通过 `for...in` 循环遍历 `jsonData` 对象的每个属性,根据 `fieldMap` 中的映射关系将旧字段名替换为新字段名,若没有映射则使用原字段名,最终将结果存储在 `newJsonData` 中。 ### 方法二:使用 `Object.keys()` 和 `reduce()` 方法 ```javascript // 示例 JSON 数据 const jsonData = { "oldField1": "value1", "oldField2": "value2" }; // 定义字段名映射 const fieldMap = { "oldField1": "newField1", "oldField2": "newField2" }; const newJsonData = Object.keys(jsonData).reduce((acc, key) => { const newKey = fieldMap[key] || key; acc[newKey] = jsonData[key]; return acc; }, {}); console.log(newJsonData); ``` 这使用 `Object.keys()` 获取 `jsonData` 的所有键,再通过 `reduce()` 方法遍历这些键,根据映射关系替换字段名并将结果存储在 `acc` 中。 ### 方法三:处理嵌套 JSON 数据 ```javascript // 示例嵌套 JSON 数据 const jsonData = { "oldField1": "value1", "nested": { "oldField2": "value2" } }; // 定义字段名映射 const fieldMap = { "oldField1": "newField1", "oldField2": "newField2" }; function renameFields(obj) { if (typeof obj === 'object' && obj!== null) { if (Array.isArray(obj)) { return obj.map(renameFields); } else { const newObj = {}; for (const key in obj) { if (obj.hasOwnProperty(key)) { const newKey = fieldMap[key] || key; newObj[newKey] = renameFields(obj[key]); } } return newObj; } } return obj; } const newJsonData = renameFields(jsonData); console.log(newJsonData); ``` 对于嵌套的 JSON 数据,使用递归函数 `renameFields` 来处理,若遇到对象则递归调用该函数处理其属性,若遇到数组则对数组元素递归处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值