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 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
jQuery学习笔记 获取jQuery对象
Sep 19 Javascript
event对象获取方法总结在google浏览器下测试
Nov 03 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
激动人心的 Angular HttpClient的源码解析
Jul 10 Javascript
JavaScript实现滑动导航栏效果
Aug 30 Javascript
浅谈Angular6的服务和依赖注入
Jun 27 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
Oct 20 Javascript
js实现掷骰子小游戏
Oct 24 Javascript
Html5生成验证码的示例代码
May 10 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项目应该注意的几点事项分享
2013/12/20 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
Python实现list反转实例汇总
2014/11/11 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
一行python实现树形结构的方法
2019/08/09 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
python 利用toapi库自动生成api
2020/10/19 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
中学生爱国演讲稿
2013/12/31 职场文书
意向协议书范本
2014/04/23 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
爱国电影观后感
2015/06/19 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
详解python的内存分配机制
2021/05/10 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
实操Python爬取觅知网素材图片示例
2021/11/27 Python
Golang Web 框架Iris安装部署
2022/08/14 Python