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

本文展示了如何使用JavaScript循环遍历JSON格式的数据,并详细解释了两种不同的遍历方式,包括直接遍历和嵌套遍历。通过实例代码演示,帮助开发者更好地理解和应用JSON数据处理。
json格式 Js里循环遍历json格式数据
分类: JavaScript 2010-12-17 12:20 1035人阅读 评论(0) 收藏 举报

什么是JOSN

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



view plainprint?

1. var list = {'list':[{"id":8,"password":"月月","username":"维吾尔"},
2. {"id":7,"password":"dfgsfdf","username":"dfdfdf"},
3. {"id":6,"password":"aaabbb","username":"aaaabbb"},
4. {"id":5,"password":"gfdfgdf","username":"fggegte"},
5. {"id":3,"password":"dfgfgrewr","username":"hahaha"},
6. {"id":2,"password":"fggfhgfh","username":"fddgfgh"},
7. {"id":1,"password":"hdghdgd","username":"dfsgss"}]};
8.
9.
10. for(var l in list){
11. alert(l+" "+list[l]);
12. for(var c in list[l]){
13. alert(list[l][c].id+" "+list[l][c].password+" "+list[l][c].username);
14. }
15. }
16.
17. for(var l in list){
18. alert(l+" "+list[l]);
19. for(var c in list[l]){
20. for(var _c in list[l][c]){
21. alert(_c+" "+list[l][c][_c]);
22. };
23. }
24. }
25.
26. var li = [{"id":8,"password":"月月","username":"维吾尔"},
27. {"id":7,"password":"dfgsfdf","username":"dfdfdf"},
28. {"id":6,"password":"aaabbb","username":"aaaabbb"},
29. {"id":5,"password":"gfdfgdf","username":"fggegte"},
30. {"id":3,"password":"dfgfgrewr","username":"hahaha"},
31. {"id":2,"password":"fggfhgfh","username":"fddgfgh"},
32. {"id":1,"password":"hdghdgd","username":"dfsgss"}];
33.
34. for(var i in li){
35. alert(i+" "+li[i]);
36. for(var _i in li[i]){
37. alert(_i+" "+li[i][_i]);
38. }
39. }

var list = {'list':[{"id":8,"password":"月月","username":"维吾尔"}, {"id":7,"password":"dfgsfdf","username":"dfdfdf"}, {"id":6,"password":"aaabbb","username":"aaaabbb"}, {"id":5,"password":"gfdfgdf","username":"fggegte"}, {"id":3,"password":"dfgfgrewr","username":"hahaha"}, {"id":2,"password":"fggfhgfh","username":"fddgfgh"}, {"id":1,"password":"hdghdgd","username":"dfsgss"}]}; for(var l in list){ alert(l+" "+list[l]); for(var c in list[l]){ alert(list[l][c].id+" "+list[l][c].password+" "+list[l][c].username); } } for(var l in list){ alert(l+" "+list[l]); for(var c in list[l]){ for(var _c in list[l][c]){ alert(_c+" "+list[l][c][_c]); }; } } var li = [{"id":8,"password":"月月","username":"维吾尔"}, {"id":7,"password":"dfgsfdf","username":"dfdfdf"}, {"id":6,"password":"aaabbb","username":"aaaabbb"}, {"id":5,"password":"gfdfgdf","username":"fggegte"}, {"id":3,"password":"dfgfgrewr","username":"hahaha"}, {"id":2,"password":"fggfhgfh","username":"fddgfgh"}, {"id":1,"password":"hdghdgd","username":"dfsgss"}]; for(var i in li){ alert(i+" "+li[i]); for(var _i in li[i]){ alert(_i+" "+li[i][_i]); } }







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` 来处理,若遇到对象则递归调用该函数处理其属性,若遇到数组则对数组元素递归处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值