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(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
JsRender for object语法简介
Oct 31 Javascript
jquery实现的代替传统checkbox样式插件
Jun 19 Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 Javascript
jQuery多级手风琴菜单实例讲解
Oct 22 Javascript
使用jQuery监听DOM元素大小变化
Feb 24 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 Javascript
canvas简单快速的实现知乎登录页背景效果
May 08 Javascript
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
vue与iframe之间的信息交互的实现
Apr 08 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
JavaScript中的私有成员
2006/09/18 Javascript
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
python使用Tesseract库识别验证
2018/03/21 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
智能钱包:Ekster
2019/11/21 全球购物
检察官就职演讲稿
2014/01/13 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
初中家长评语和期望
2014/12/26 职场文书
终止合同协议书范本
2016/03/22 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
解析目标检测之IoU
2021/06/26 Python