zoukankan      html  css  js  c++  java
  • 两种常用的数据交换格式:XML和JSON

    不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁、易于数据储存、快速读取,且独立于各种编程语言。我们往往传输的是文本文件,比如我们都知道的csv(comma seperated values)格式。

    而在互联网上,传输数据往往有很多层次的结构,并非矩阵形态(m×n)那么简单。常见的有xml、json、yaml等等。其中,yaml是"yaml ain't markup language"的递归缩写,即各单词首字母组合恰为第一个词;而yaml也可理解成yet another markup language。

    而感觉离我们最近的主要还是xml和json,并且是常常遇到;yaml暂时没有接触。故本文对此二者做个小的总结。

    (一)XML

    Extensible Markup Language,可扩展标记语言。

    XML最初的设计目的是为了EDI(Electronic Data Interchange,电子数据交换)。

    早在Web诞生以前,SGML(Standard Generalized Markup Language,标准通用标记语言)就被发明。然而它太复杂,且不适用于Web,因此1989年HTML(Hyper Text Markup Language,超文本标记语言)诞生了。而HTML也存在着无法描述数据、可读性差、搜索时间长等缺陷。1998年,以前两者为前驱,W3c(万维网联盟)发布了XML的1.0标准,标志着XML的诞生。

    主要语法规则:

    1、必须有声明语句。

    2、大小写有区别。例如“<P>”和“<p>”是不同的标记。

    3、XML文档有且只有一个根元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。
    根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。
    4、属性值使用引号。
    在HTML代码里面,属性值可以加引号,也可以不加。但是XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。
    5、所有的标记必须有相应的结束标记
    在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。
    6、所有的空标记也必须被关闭
    空标记是指标记对之间没有内容的标记,比如“<img>”等标记。在XML中,规定所有的标记必须有结束标记。
    示例:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="osg.AndroidExample"
          android:installLocation="preferExternal"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
        <uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) -->
        <uses-permission android:name="android.permission.INTERNET"/>
     
        <application android:label="@string/app_name" android:icon="@drawable/osg">
            <activity android:name=".osgViewer"
                      android:label="@string/app_name" android:screenOrientation="landscape"> <!--  Force screen to landscape -->
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
        </application>
    </manifest>

    (二)JSON

    JavaScript Object Notation,JavaScript对象符号。

    JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,于2001年开始推广。

    主要语法规则:

    1.使用六个基本符号(允许前后有空格出现):数组'['和']'、对象'{'和'}'、命名分隔符':'、值分隔符','。

    2.值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。

    {
        "people": [{
                "firstName": "Brett",
                "lastName": "McLaughlin"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter"
            }
        ]
    }

    这里推荐在线的XML和JSON解析器,方便数据格式转化和查看。

    解析XML  :  https://c.runoob.com/front-end/710

    解析JSON:  https://www.bejson.com/


    参考资料:

    1. https://baike.baidu.com/item/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80/2885849?fromtitle=xml&fromid=86251&fr=aladdin        (百度百科XML)

    2. https://baike.baidu.com/item/JSON      (百度百科JSON)

  • 相关阅读:
    Linux新手入门:通过chmod改变文件权限--转
    一个非常好的性格切割问题
    Weka算法Classifier-tree-J48源代码分析(一个)基本数据结构和算法
    百度地图3.1课程—检索演示
    JAVA在IO流量汇总
    crm2011i创建nt类型字段
    学习vi和vim编辑(3):一个简单的文本编辑器(2)
    禹洲:我们这一代人的困惑
    D其他项目打电话AL工程EF Model
    HDU 2289 Cup(可以二分法,但是除了它的一半?)
  • 原文地址:https://www.cnblogs.com/maoerbao/p/11466630.html
Copyright © 2011-2022 走看看