js读取并解析JSON类型数据的方法


Posted in Javascript onNovember 14, 2015

本文实例讲述了js读取并解析JSON类型数据的方法。分享给大家供大家参考,具体如下:

一、什么是JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式,同时,JSON是 JavaScript 原生格式。
非常适合于服务器与 JavaScript 的交互

二、为什么使用JSON而不是XML

他们都是这样说的:尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性

三、如何使用

下面代码是html代码片段,实现点击按钮解析json格式数据并alert内容

<input type="button" value="button" onclick="clicks();"/>

下面是js函数代码:
var json = {
  contry:{
  area:{
   man:"12万",
   women:"10万"
  }
  }
 };
//方式一:使用eval解析
 var obj = eval(json);
 alert(obj.constructor);
 alert(obj.contry.area.women);
 //方式二:使用Funtion函数
 var strJSON = "{name:'json name'}";//得到的JSON
 var obj = new Function("return" + strJSON)();//转换后的JSON对象
 alert(obj.name);//json name
 alert(obj.constructor);
//复杂一点的json数组数据的解析
 var value1 = [ 
  {"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"},
   {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"},
  {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}
   ]; 
 var obj1 = eval(value1);
 alert(obj1[0].c01);
 //复杂一点的json的另一种形式
 var value2 = {
   "list":[
   {"password":"1230","username":"coolcooldool"},
   {"password":"thisis2","username":"okokok"}
   ],
   "array":[
   {"password":"1230","username":"coolcooldool"},
   {"password":"thisis2","username":"okokok"}
   ]
   };
 var obj2 = eval(value2);
 alert(obj2.list[0].password);
}

四、eval

① 这种形式将使得性能显著降低,因为它必须运行编译器

② eval函数还减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。就像with语句执行的方式一样,它降低了语言的性能

③ Function构造器是eval的另一种形式,所以它同样也应该被避免使用。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js 上传图片预览问题
Dec 06 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
在Ubuntu上安装最新版本的Node.js
Jul 14 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
KnockoutJs快速入门教程
May 16 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 #Javascript
javascript动态生成树形菜单的方法
Nov 14 #Javascript
node.js回调函数之阻塞调用与非阻塞调用
Nov 13 #Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 #Javascript
学习JavaScript正则表达式
Nov 13 #Javascript
jquery实现九宫格大转盘抽奖
Nov 13 #Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 #Javascript
You might like
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
将php数组输出html表格的方法
2014/02/24 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
react build 后打包发布总结
2018/08/24 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python之re操作方法(详解)
2017/06/14 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python hash每次调用结果不同的原因
2019/11/21 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python如何支持并发方法详解
2020/07/25 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
硕士生找工作求职信
2014/07/05 职场文书
计划生育个人总结
2015/03/02 职场文书
高一地理教学工作总结
2015/08/12 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js