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 相关文章推荐
div+css布局的图片连续滚动js实现代码
May 04 Javascript
JQuery学习笔录 简单的JQuery
Apr 09 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
javascript基本数据类型及类型检测常用方法小结
Dec 14 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
Vue-Cli中自定义过滤器的实现代码
Aug 12 Javascript
微信小程序文章详情页面实现代码
Sep 10 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
Python实现测试磁盘性能的方法
2015/03/12 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python实现栈的方法
2015/05/26 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
浅谈Python的异常处理
2016/06/19 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
某科技软件测试面试题
2013/05/19 面试题
企业管理部经理岗位职责
2013/12/24 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server