XML和JSON基础

  本文主要是对XML和JSON的基础知识的学习记录,方便以后查阅,也希望能够帮助对于基础知识不是很清晰的同行。
1.    XML基础
    开发过程中我们经常会用xml文档进行传输和保存数据,却并没有对XML进行系统的学习,理论指导实践,希望对其概念不了解的同行都认真的学习一下理论知识。本文仅作为记录和备忘录。参考链接http://www.w3school.com.cn/xml/index.asp

从一个XML文档说起



  Everyday Italian 
  Giada De Laurentiis 
  2005 
  30.00 


  Harry Potter 
  J K. Rowling 
  2005 
  29.99 


  Learning XML 
  Erik T. Ray 
  2003 
  39.95 

XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。例子中的根元素是。文档中的所有 元素都被包含在 中。 元素有 4 个子元素:、< author>、<year>、<price>。</p> <p><a href="http://img.e-com-net.com/image/info8/82b265a5aec8405da678c6f8cf0aa717.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/82b265a5aec8405da678c6f8cf0aa717.gif" alt="XML和JSON基础_第1张图片" width="486" height="275" style="border:1px solid black;"></a><br></p> 下面开始正式的学习XML相关知识 <br> <strong>1.1  什么是XML?</strong> <br>    <span style="font-size:12px;"> <span style="font-family:SimHei;"> 1)XML指可扩展标记语言(EXtensible Markup Language)<br>     2)XML是一种标记语言,很类似HTML<br>     3)XML的设计宗旨是传输数据,而非显示数据<br>     4)XML标签没有被预定义。您需要自行定义标签。<br>     5)XML被设计具有自我描述性。</span></span> <br> <strong>1.2  XML的语法规则</strong> <br>   <span style="font-size:12px;">   1)所有XML元素都必须有关闭标签<br>     2)XML标签对大小写敏感(必须使用相同的大小写来编写打开标签和关闭标签)<br>     3)XML必须正确地嵌套(在XML中,所有元素都必须彼此正确地嵌套:<b><i>This text is bold and italic</i></b>正确嵌套的意思是:由于<i>元素是在<b>元素内打开的,那么它必须在<b>元素内关闭)<br>     4)XML文档必须有根元素(XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。)<br>     5)XML的属性值必须加引号<br>     6)实体引用</span> <br> <p>   <a href="http://img.e-com-net.com/image/info8/ae7ac401efe8434d88bf6088f86acd9c.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/ae7ac401efe8434d88bf6088f86acd9c.png" alt="XML和JSON基础_第2张图片" width="720" height="432" style="border:1px solid black;"></a>  <br></p> <span style="font-size:12px;">    7)XML中的注释(<!--注释内容 -->)<br>     8)XML中,空格会被保留</span> <br> <p><strong>1.3  重要概念(元素、属性)<br> XML元素</strong><br><span style="font-size:12px;">    1)XML元素指从(且包括)开始标签直到(且包括)结束标签的部分。<br>     2)元素可以包含其他元素、文本或者两者的混合物。元素也可以拥有属性</span>。<br></p> <pre><code class="language-javascript"><bookstore> <book category="CHILDREN"> <title>Harry Potter J K. Rowling 2005 29.99 Learning XML Erik T. Ray 2003 39.95    在上例中,都拥有元素内容,因为他们包含了其他元素。只有文本内容,因为它仅包含文本。只有元素拥有属性(category="CHILDREN")。

    3)XML元素必须遵循以下命名规则:
    •  名称可以含字母、数字以及其他的字符
    •  名称不能以数字或者标点符号开始
    •  名称不能以字符 “xml”(或者 XML、Xml)开始
    •  名称不能包含空格
    最佳命名习惯:
    •  使名称具有描述性。
    •  名称应当比较简短,比如:,而不是:
    •  避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。
    •  避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
    •  避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
    •  XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
    •  非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。

    4)XML元素是可扩展的
XML属性
    1)属性提供有关元素的额外信息
    2)XML 属性必须加引号(单引号和双引号均可使用,如果属性值本身包含双引号,那么有必要使用单引号包围它,或者可以使用实体引用)
   注意:
    1)在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
    2)为什么要避免XML属性?
    因使用属性而引起的一些问题:
    •  属性无法包含多重的值(元素可以)
    •  属性无法描述树结构(元素可以)
    •  属性不易扩展(为未来的变化)
    •  属性难以阅读和维护
    3)在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

2.JSON基础
    现在许多公司都在使用JSON进行数据的传输,因此很有必要学习JSON的相关概念和使用。参考链接http://www.w3school.com.cn/json/index.asp
2.1什么是JSON?
    1)JSON指的是JavaScript对象表示法(JavaScript Object Notation)
    2)JSON是轻量级的文本数据交换格式
    3)JSON独立于语言
    4)JSON具有自我描述性,更易理解

2.2 JSON 语法规则
    JSON 语法是JavaScript对象表示法语法的子集。
    •数据在名称/值对中
    •数据由逗号分隔
    •花括号保存对象
    •方括号保存数组

2.3 JSON对象和数组
   1) JSON 名称/值对
     JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:"firstName" : "John"
     JSON 值可以是:
    •数字(整数或浮点数)
    •字符串(在双引号中)
    •逻辑值(true 或 false)
    •数组(在方括号中)
    •对象(在花括号中)
    •null

  2) JSON 对象。JSON 对象在花括号中书写:对象可以包含多个名称/值对:{ "firstName":"John" , "lastName":"Doe" }
  3) JSON 数组。JSON 数组在方括号中书写

  数组可包含多个对象:

{
    "employees": [
        {
            "firstName": "John",
            "lastName": "Doe"
        },
        {
            "firstName": "Anna",
            "lastName": "Smith"
        },
        {
            "firstName": "Peter",
            "lastName": "Jones"
        }
    ]
}
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。


         

你可能感兴趣的:(Android)