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 相关文章推荐
JQuery jsonp 使用示例代码
Aug 12 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
Javascript对象Clone实例分析
Jun 09 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
js使用highlight.js高亮你的代码
Aug 18 Javascript
vue2.0实现音乐/视频播放进度条组件
Jun 06 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
基于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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
php实现session共享的实例方法
2019/09/19 PHP
js的一些常用方法小结
2011/06/29 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
Python 开发Activex组件方法
2009/11/08 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
python爬取微信公众号文章
2018/08/31 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
解决Python中回文数和质数的问题
2019/11/24 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
给民警的表扬信
2014/01/08 职场文书
中学教师培训制度
2014/01/31 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
2014年终个人总结报告
2015/03/09 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
Win2008系统搭建DHCP服务器
2022/06/25 Servers