JSON和XML

在我学习前端的时候,推荐学习路线里面没有XML背影,后台写的接口也全是JSON数据格式,于是淡化了XML数据格式,最近看了JS高程和自己了解了一点XML,于是想给自己大致总结一下XML和JSON的一些差距和用法

 

JSON:

  借鉴一下别人总结的优缺点:
               <1>.JSON的优点:
      A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
      B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
      C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
      D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
      E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
    <2>.JSON的缺点
      A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
      B.JSON格式目前在Web Service中推广还属于初级阶段

  

  JSON数据格式(对象+数组):

{
    name:"Shmily",           // 这里的name是一个对象,值是Shimily
    sex:"man",                //  这里的sex是一个对象,值是man
    friend:[                       // 这里的friend是一个对象数组
        {
             name:"Emily",               // friend数组的第一项的name对象
             sex:"woman"                // friend数组的第一项的sex对象
         },
         { 
              name:"Bob",              // 同理这是friend对象数组的第二项的一个name对象
              sex:"man"                 // ......
          } 
      ]

}
// 总体来说,JSON格式可以理解为数组+对象的一种格式 ,易于读取

  

  JS中,JSON的序列化和解析:

  序列化:

*******JSON格式序列化,JSON格式数据转为普通字符串*************

// 这里的me是一个JSON格式的数据,例如我上面写的JSON格式
var jsonText = JSON.stringify(me);

// 一般从后台获取的JSON格式的数据,先要转为普通字符串格式,再进行访问利用
// 转化为字符串之后访问也很方便: // friend[0].name —— Emily // friend[1].sex —— woman

  解析:

**************** JSON的解析*********************

// 将一个普通字符串格式转为JSON格式,该字符串格式也是数组+对象的一种格式,不是任意的字符串格式
var jsonObj = JSON.parse(jsonText);  

 

    

XML: 

  xml的优缺点,借鉴一下别人的总结:

    <1>.XML的优点

      A.格式统一,符合标准;
      B.容易与其他系统进行远程交互,数据共享比较方便。
    <2>.XML的缺点
      A.XML文件庞大,文件格式复杂,传输占带宽;
      B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
      C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
      D.服务器端和客户端解析XML花费较多的资源和时间。

 

   XML格式:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

  

  DOM格式的解析和序列化:

    在 XML 文档对象模型 (DOM) 中,每个节点都是一个对象。

  对象拥有方法(功能)和属性(关于对象的信息),并可通过 JavaScript 进行访问和操作。

  三个重要的 XML DOM 节点属性是:nodeName、nodeValue、nodeType

注:详情请看W3C   ————        http://www.w3school.com.cn/xmldom/dom_nodes_info.asp

var a = '<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don"t forget the meeting!</body></note>';

// 解析成XML格式
var b = new DOMParser();
var c = b.parseFromString(a,"text/xml");

// 序列成字符串格式
var z = new XMLSerializer();
var d = z.serializeToString(c);

//访问XML格式的节点
var x = c.getElementsByTagName("note")[0].childNodes[0];
x.nodeName     // to
x.nodeValue   // George
x.nodeType    // 1

由于自己XML格式接触不多,所以肯定有很多不足,以后慢慢修补。

 

posted @ 2017-11-14 00:14  Shmily-HJT  阅读(188)  评论(0)    收藏  举报