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 相关文章推荐
JQuery与JSon实现的无刷新分页代码
Sep 13 Javascript
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
ES6通过babel转码使用webpack使用import关键字
Dec 13 Javascript
jQuery实现简单日期格式化功能示例
Sep 19 jQuery
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 Javascript
vue生命周期实例小结
Aug 15 Javascript
vue观察模式浅析
Sep 25 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 Javascript
在vue中使用image-webpack-loader实例
Nov 12 Javascript
JavaScript实现点击切换功能
Jan 27 Javascript
JavaScript实现简单图片切换
Apr 29 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
怎么使 Mysql 数据同步
2006/10/09 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
python五子棋游戏的设计与实现
2019/06/18 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
简单说下OSPF的操作过程
2014/08/13 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
会计学自我鉴定
2014/02/06 职场文书
党风廉设责任书
2014/04/16 职场文书
关于环保的活动方案
2014/08/25 职场文书
大学生实习证明
2015/06/16 职场文书
公司保密管理制度
2015/08/04 职场文书
python办公自动化之excel的操作
2021/05/23 Python
JavaScript组合继承详解
2021/11/07 Javascript
讲解Python实例练习逆序输出字符串
2022/05/06 Python