JSON

javascript变量json对象等到路径

字号+ 作者:H5之家 来源:H5之家 2017-10-19 17:33 我要评论( )

javascript递归迭代json对象,得到每个遍历到的项目的路径,示例代码如下 注意json对象和数组的区分,具体参考这篇文章: script type=text/javascriptvar json = [{name: zhansan,age: 23,address: {city: beijing,year: [{ test: 气态流出物月报 }, [0, [1

  javascript递归迭代json对象,得到每个遍历到的项目的路径,示例代码如下

注意json对象和数组的区分,具体参考这篇文章:

<script type="text/javascript"> var json = [{ "name": "zhansan", "age": 23, "address": { "city": "beijing", "year": [{ test: "气态流出物月报" }, [0, [1, 1]], 1], "gas": { "gasSheet": "气态流出物月报", "H_adjust": 1 }, "time": { "year": ["气态流出物月报", 0, 1], "start": [1, "~"], "duration": 31 } }, "units": { "title": "function" }, //怎么判断它是相对于根的子节点? "student": [13, "s1", "s2"] }, { abc: 123}]; function IsArray(o) { var _o = {}; return _o.toString.call(o) == '[object Array]' } function RecursionJson(json, path) { var isArray = IsArray(json); //防止JSON对象定义了length对象,所以判断数组不要通过对象的length属性判断 for (var attr in json) if (typeof json[attr] == 'object') { if (IsArray(json[attr])) { for (var j = 0; j < json[attr].length; j++) { if (typeof json[attr][j] == 'object') RecursionJson(json[attr][j], path + (isArray ? '[' : '.') + attr + (isArray ? ']' : '') + '[' + j + ']'); //不是普通类型,递归遍历 else alert(path + (isArray ? '[' : '.') + attr + (isArray ? ']' : '') + '[' + j + ']:' + json[attr][j]); } } else RecursionJson(json[attr], path + (isArray ? '[' : '.') + attr + (isArray ? ']' : '')); //递归遍历 } else alert(path + (isArray ? '[' : '.') + attr + (isArray ? ']' : '') + ':' + json[attr]); } RecursionJson(json, "json"); </script>

 


原创文章,转载请注明出处:

2014-1-7Web开发网

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JS使用json数据自动填充表单

    JS使用json数据自动填充表单

    2017-10-13 09:02

  • javascript转义字符(\)对JSON.parse和eval的影响

    javascript转义字符(\)对JSON.parse和eval的影响

    2017-08-18 18:00

  • jQuery调用WebService返回JSON数据

    jQuery调用WebService返回JSON数据

    2017-08-18 11:01

网友点评
a