收集json解析的四种方法分享


Posted in Javascript onJanuary 17, 2014

Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的。下面介绍下四种解析Json的方式:

Part 1

var list1 = [1,3,4];
alert(list1[1]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[0]["xing"])
alert(list2[0].xing)

Part 2

var value = {
    "china":{
        "hangzhou":{"item":"1"},
        "shanghai":{"item":"2"},
        "chengdu":{"item":"3"}
    },
    "America":{
        "aa":{"item":"1"},
        "bb":{"item":"2"}   
    },
    "Spain":{
        "dd":{"item":"1"},
        "ee":{"item":"2"},
        "ff":{"item":"3"}   
    }
};
for(var countryObj in value)
{
    document.write(countryObj + ":<br />")
    //没用的for(var cityObj in value.countryObj)
    for(var cityObj in value[countryObj])
    {
        document.write('    ' + cityObj + "<br />");
        for(var itemObj in value[countryObj][cityObj])
        {
            document.write("      "+ itemObj + value[countryObj][cityObj][itemObj] +"<br />")   
        }
    }   
}  

解释:

countryObj 为value对象的一个属性明,value[countryObj] 为value对象的属性值 这里为一个json对象比如b,value[countryObj][cityObj]为josn对象b的属性值 它也是一个json对象,于是 value[countryObj][cityObj]["item"]便可以取到json对象暂时成为c的值,或者 value[countryObj][cityObj].item。

总之分清是json还是array这是很关键的。

Part 3

var value2 = {
    "china":[
        {"name":"hangzhou", "item":"1"},
        {"name":"shanghai", "item":"2"},
        {"name":"sichuan", "item":"3"}
    ],
    "America":[
        {"name":"aa", "item":"12"},
        {"name":"bb", "item":"2"}
    ],
    "Spain":[
        {"name":"cc", "item":"1"},
        {"name":"dd", "item":"23"},
        {"name":"ee", "item":"3"}
    ]
};
for (var countryObj in value2)
{
    document.write(countryObj + ":<br />")   
    for (var cityObj in value2[countryObj])
    {
        //可以用document.write("  " + value2[countryObj][cityObj].item + "<br />");
        document.write(cityObj + "  " + value2[countryObj][cityObj]["name"] + "<br />" );   
    }
}

解释:

countryObj 为value2对象的属性名,value2[countryObj] 为value2对象属性值 在本例中它是一个数组,cityObj 是数组的一个元素,它又是另外一个json对象,于是,value2[countryObj][cityObj]["name"]就访问到该对象的 name的属性值,也可以通过 value2[countryObj][cityObj].name 来访问该属性值。

Part 4

var value2 = {
    "china":[
        {"name":"hangzhou", "item":"1"},
        {"name":"shanghai", "item":"2"},
        {"name":"sichuan", "item":"3"}
    ],
    "America":[
        {"name":"aa", "item":"12"},
        {"name":"bb", "item":"2"}
    ],
    "Spain":[
        {"name":"cc", "item":"1"},
        {"name":"dd", "item":"23"},
        {"name":"ee", "item":"3"}
    ]
};    for (var countryObj in value2)
    {
        document.write(countryObj + ":<br />")   
        //document.write("  " + value2[countryObj].length);
        for (var i = 0;i < value2[countryObj].length; i++)
        {
            document.write("  " + value2[countryObj][i]["name"] + "<br />");   
        }
    }

解释:

countryObj value2对象的属性名,value2[countryObj] 属性值 本例中是一个数组,value2[countryObj].length 数组的长度,value2[countryObj][i]数组的项 == json对象。

value2[countryObj][i]["name"] 取得name的值,也可以用value2[countryObj][i].name 来取得name的值。

Javascript 相关文章推荐
拖动一个HTML元素
Dec 22 Javascript
js实现文本框选中的方法
May 26 Javascript
实现音乐播放器的代码(html5+css3+jquery)
Aug 04 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
对称加密与非对称加密优缺点详解
Feb 06 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 Javascript
Vue.js实现微信过渡动画左右切换效果
Jun 13 Javascript
js正则相关知识点专题
May 10 Javascript
详解node和ES6的模块导出与导入
Feb 19 Javascript
vue实现在线学生录入系统
May 30 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 #Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 #Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 #Javascript
Jquery 获取对象的几种方式介绍
Jan 17 #Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 #Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
Jan 17 #Javascript
Js判断CSS文件加载完毕的具体实现
Jan 17 #Javascript
You might like
推荐php模板技术[转]
2007/01/04 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php中使用sftp教程
2015/03/30 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python 的描述符 descriptor详解
2016/02/27 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python实现控制台打印的方法
2019/01/12 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
中专生自我鉴定
2013/12/17 职场文书
公司薪酬管理制度
2014/01/31 职场文书
委托书格式
2014/08/01 职场文书
经理岗位职责
2015/02/02 职场文书
教师师德表现自我评价
2015/03/05 职场文书
律师函格式范本
2015/05/27 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
MySQL 时间类型的选择
2021/06/05 MySQL
Python中的 No Module named ***问题及解决
2022/07/23 Python