js读取解析JSON类型数据(转)

摘要:
它非常适合服务器和JavaScript之间的交互。2.为什么使用JSON而不是XML?他们都这么说:尽管有很多广告宣传XML如何具有跨平台和跨语言的优势,但除非它应用于Web服务,否则在普通Web应用程序中,开发人员通常会在XML解析方面遇到困难。无论是在服务器端生成或处理XML,还是在客户端使用JavaScript解析XML,它都会导致代码复杂,开发效率极低。

谢谢博主,转自http://blog.csdn.net/beyond0851/article/details/9285771

一、什么是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);
 }

4、eval

1这种形式将使得性能显著降低,因为它必须运行编译器

2eval函数还减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。就像with语句执行的方式一样,它降低了语言的性能

3Function构造器是eval的另一种形式,所以它同样也应该被避免使用。

免责声明:文章转载自《js读取解析JSON类型数据(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇android 网络 Volley框架Java调用ocx控件以及dll下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

实现DataTables搜索框查询结果高亮显示

DataTables是封装好的HTML表格插件,丰富了HTML表格的样式,提供了即时搜索、分页等多种表格高级功能。用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据。关于DataTables的更多信息,请查看:http://www.datatables.club/、https://datatables.net/。下图将要展示...

对Xml文档进行操作(修改,删除)

<?xml version="1.0" encoding="utf-8"?><Products>  <Product proName="aa1" proPrice="12" proInfo="bb">  </Product>  <Product proName="电脑" proPrice="3200"...

Java用SAX解析XML

要解析的XML文件:myClass.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <class> 3 <stu id="001"> 4 <name>Allen</name> 5 <sex>男</sex> 6 &l...

Js 跨域之李代桃僵

1. 跨域的方法大致有七计 javascript的同源策略 同源策略是指协议,主机和端口 相同,就是为同源,不管后面在跟什么参数,否则都是跨域 个人觉得服务器上设置代理页面 或者设置跨域头cros最方便 锦囊一 在服务器上设置代理页面 ,如果是有类似nginx 服务的话,可以配置nginx 反向代理,因为跨域只针对浏览器. 比如nginx.conf ser...

xml和json之间的转换

/*** xml转json* @author yizw**/public class XmlExercise { /*** 将xml字符串<STRONG>转换</STRONG>为JSON字符串* * @param xmlString* xml字符串* @return JSON<STRONG>对象</STRONG&g...

liquibase之快速入门

第一步:   创建一个Changelog File:  这个database  Changelog file列举了数据库中所有的改变情况,该文件是以xml为基础的,下面是一个空的xml文件: 1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <databaseChangeLog 4 xm...