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对数字的格式化使用说明
Jan 12 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
jQuery源码解读之removeClass()方法分析
Feb 20 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
Express + Session 实现登录验证功能
Sep 08 Javascript
微信小程序分包加载代码实现方法详解
Sep 23 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
vue 内联样式style中的background用法说明
Aug 05 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实现ping
2006/10/09 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
中专毕业生自荐信范文
2013/11/28 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
医院工作检讨书范文
2014/02/10 职场文书
搞笑创意广告语
2014/03/17 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
2015年保送生自荐信
2015/03/24 职场文书