收集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 Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
DOM基础教程之使用DOM设置文本框
Jan 20 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
Dec 25 Javascript
Node.js 条形码识别程序构建思路详解
Feb 14 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
JS简单生成随机数(随机密码)的方法
May 11 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
Jun 15 Javascript
Vue中自定义全局组件的实现方法
Dec 08 Javascript
详解Angular6 热加载配置方案
Aug 18 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
基于javascript实现动态时钟效果
2020/08/18 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
单位门卫岗位职责
2013/12/20 职场文书
煤矿班组长的职责
2013/12/25 职场文书
节约用水倡议书
2014/04/16 职场文书
离婚财产处理协议书
2014/09/30 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
python如何读取和存储dict()与.json格式文件
2022/06/25 Python