收集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 相关文章推荐
jquery浏览器滚动加载技术实现方案
Jun 03 Javascript
JavaScript显示表单内元素数量的方法
Apr 02 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
es6学习笔记之Async函数的使用示例
May 11 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
小程序ios音频播放没声音问题的解决
Jul 11 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 Javascript
vue 弹出遮罩层样式实例
Jul 22 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python类和继承用法实例
2015/07/07 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python word转pdf代码实例
2019/08/16 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
python range实例用法分享
2020/02/06 Python
Python使用type动态创建类操作示例
2020/02/29 Python
python 常见的反爬虫策略
2020/09/27 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
员工培训邀请函
2014/01/11 职场文书
商业房地产广告语
2014/03/13 职场文书
产品质量承诺范本
2014/03/31 职场文书
三年级学生评语大全
2014/12/26 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers