收集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 相关文章推荐
JavaScript iframe的相互操作浅析
Oct 14 Javascript
JavaScript 设计模式之组合模式解析
Apr 09 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
avalonjs制作响应式瀑布流特效
May 06 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
浅谈Angular HttpClient简单入门
May 04 Javascript
security.js实现的RSA加密功能示例
Jun 06 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之规范编程命名小结
2013/05/15 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
Python3几个常见问题的处理方法
2019/02/26 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技