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 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Oct 11 Javascript
jQuery弹出层插件简化版代码下载
Oct 16 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
return false;和e.preventDefault();的区别
Jul 11 Javascript
让table变成exls的示例代码
Mar 24 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
解读Bootstrap v4 sass设计
May 29 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
vue更改数组中的值实例代码详解
Feb 07 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
php实现的生成排列算法示例
2019/07/25 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
python安装教程
2018/02/28 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
研究生毕业鉴定
2014/01/29 职场文书
借款协议书
2014/09/16 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书