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 相关文章推荐
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
input链接页面、打开新网页等等的具体实现
Dec 30 Javascript
javascript内置对象arguments详解
Mar 16 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
ajax异步请求详解
Jan 06 Javascript
微信小程序中input标签详解及简单实例
May 18 Javascript
原生js封装的ajax方法示例
Aug 02 Javascript
如何用JS实现网页瀑布流布局
Apr 24 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
CI框架简单邮件发送类实例
2016/05/18 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
读jQuery之三(构建选择器)
2011/06/11 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
校园报刊亭的创业计划书
2014/01/02 职场文书
食品业务员岗位职责
2014/03/18 职场文书
安全教育演讲稿
2014/05/09 职场文书
企业党员一句话承诺
2014/05/30 职场文书
好媳妇事迹材料
2014/12/24 职场文书
公司开会通知
2015/04/20 职场文书
运动会200米广播稿
2015/08/19 职场文书
小学生运动会广播
2015/08/19 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
常用的Python代码调试工具总结
2021/06/23 Python
python实现简单石头剪刀布游戏
2021/10/24 Python