据我了解,在多年以前浏览器客户端和服务器它们的通讯数据交互格式是XML, 使用XML来规定数据格式可读性确实非常强,XML的魅力确实很大,也很成熟,但是也有不足之处,就是在网络传输的时候对流量要求特别高,如果使用XML这种格式来传输数据,确实也是非常标准的,为什么慢慢的被JSON这种数据格式给代替了呢,JSON能够代替XML的,只有明显一点就是,传输数据的时候消耗的流量比XML要小,意思就是JSON这种数据格式体积小

 

相同的数据,分别使用 JSON / XML 对比就明白了:

XML

<?xml version="1.0" encoding="utf-8" ?>
<country>
  <name>中国</name>
  <province>
    <name>黑龙江</name>
    <citys>
      <city>哈尔滨</city>
      <city>大庆</city>
    </citys>    
  </province>
  <province>
    <name>广东</name>
    <citys>
      <city>广州</city>
      <city>深圳</city>
      <city>珠海</city>
    </citys>   
  </province>
  <province>
    <name>台湾</name>
    <citys>
       <city>台北</city>
       <city>高雄</city>
    </citys> 
  </province>
  <province>
    <name>新疆</name>
    <citys>
      <city>乌鲁木齐</city>
    </citys>
  </province>
</country>

 

JSON

        {
            name: "中国",
            provinces: [
            { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
            { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
            { name: "台湾", citys: { city: ["台北", "高雄"]} },
            { name: "新疆", citys: { city: ["乌鲁木齐"]} }
            ]
        }

 


XML在其他领域的重要性,无可替代

既然XML在无论数据传输方面慢慢的被JSON这种数据格式给取代,XML在其他领域还是有着相当重要的

很多很多的框架,各种各样的框架,无数的框架配置,或者布局,都是非XML莫属

就例如:Android的核心配置文件是什么:AndroidManifest.xml 是XML来配置的

就例如:Android的布局文件是 xxx.xml

 


 

XML数据格式的阅读性比JSON好

JSON数据格式在网络传输方面比XML要好

 


 

 

JSON的数据格式(对象):

1.简单的JSON对象数据格式:

{
    "name":"刘俊俊",
    "age":44,
    "sex":"男"
}

 

2.简单的JSON对象数据里面 有 集合:

{
    "name":"刘俊俊",
    "age":44,
    "sex":"男",
    "grades":[
        {
            "grade":"43"
        },
        {
            "grade":"44"
        },
        {
            "grade":"88"
        },
        {
            "grade":"76"
        }
    ]
}

 

3.简单的JSON对象数据里面 有两个集合:

{
    "name":"刘俊俊",
    "age":44,
    "sex":"男",
    "grades":[
        {
            "grade":"43"
        },
        {
            "grade":"44"
        },
        {
            "grade":"88"
        },
        {
            "grade":"76"
        }
    ],
    "bodys":[
        {
            "body":"130"
        },
        {
            "body":"140"
        },
        {
            "body":"143"
        },
        {
            "body":"128"
        }
    ]
}

 

4.简单的JSON对象数据里面 有一个集合,在嵌套一个集合:

{
    "name":"刘俊俊",
    "age":44,
    "sex":"男",
    "grades":[
        {
            "grade":"43",
            "levels":[
                {
                    "level1":4
                },
                {
                    "level2":76
                },
                {
                    "level3":23
                },
                {
                    "level4":34
                },
                {
                    "level5":65
                }
            ]
        }
    ]
}

 

5.简单的JSON对象数据里面 有一个集合,在嵌套两个集合:

{
    "name":"刘俊俊",
    "age":44,
    "sex":"男",
    "grades":[
        {
            "grade":"43",
            "levels":[
                {
                    "level1":4
                },
                {
                    "level2":76
                },
                {
                    "level3":23
                },
                {
                    "level4":34
                },
                {
                    "level5":65
                }
            ],
            "child":[
                {
                    "name":"小明",
                    "age":99,
                    "body":140
                },
                {
                    "name":"小云",
                    "age":87,
                    "body":130
                },
                {
                    "name":"小俊",
                    "age":98,
                    "body":150
                }
            ]
        }
    ]
}

 


 

 

JSON的数据格式(数组):

1.简单的JSON数组数据格式,SON数组数据里面有多个JSON对象:

[
    {
        "name":"张三",
        "age":87,
        "sex":"男"
    },
    {
        "name":"李四",
        "age":98,
        "sex":"女"
    },
    {
        "name":"王五",
        "age":79,
        "sex":"男"
    },
    {
        "name":"赵六",
        "age":98,
        "sex":"女"
    },
    {
        "name":"七七",
        "age":87,
        "sex":"男"
    }
]

 

2.JSON数组数据 里面有多个JSON对象,最后JSON对象里面 还有一个对象:

[
    {
        "name":"张三",
        "age":87,
        "sex":"男"
    },
    {
        "name":"李四",
        "age":98,
        "sex":"女"
    },
    {
        "name":"王五",
        "age":79,
        "sex":"男"
    },
    {
        "name":"赵六",
        "age":98,
        "sex":"女"
    },
    {
        "name":"七七",
        "age":87,
        "sex":"男",
        "pet":{
            "name":"阿黄",
            "age":99,
            "sex":"母",
            "color":"黑色"
        }
    }
]

 

3.JSON数组数据 里面有多个JSON对象,所有的JSON对象里面 还有一个对象:

[
    {
        "name":"张三",
        "age":87,
        "sex":"男",
        "pet":{
            "name":"阿姐",
            "age":98,
            "sex":"母",
            "color":"黑色"
        }
    },
    {
        "name":"李四",
        "age":98,
        "sex":"女",
        "pet":{
            "name":"阿白",
            "age":99,
            "sex":"母",
            "color":"黑色"
        }
    },
    {
        "name":"王五",
        "age":79,
        "sex":"男",
        "pet":{
            "name":"阿黄",
            "age":99,
            "sex":"母",
            "color":"黑色"
        }
    },
    {
        "name":"赵六",
        "age":98,
        "sex":"女",
        "pet":{
            "name":"阿红",
            "age":99,
            "sex":"母",
            "color":"黑色"
        }
    },
    {
        "name":"七七",
        "age":87,
        "sex":"男",
        "pet":{
            "name":"阿黄",
            "age":99,
            "sex":"母",
            "color":"黑色"
        }
    }
]

 


 

 

 JSON对象的数据格式(对象 Key):

 注意:key是唯一的,如果相同的两个key,只会显示一个key

{
    "dog":{
        "name":"小黄",
        "age":99,
        "sex":"公"
    },
    "cat":{
        "name":"小白",
        "age":89,
        "sex":"母"
    },
    "hog":{
        "name":"小猪猪",
        "age":88,
        "sex":"母"
    },
    "cattle":{
        "name":"小牛",
        "age":78,
        "sex":"公"
    }
}

 

 JSON数组的数据格式(数组 Key):

{
    "persons":[
        {
            "name":"刘一",
            "age":89,
            "sex":"男"
        },
        {
            "name":"许二",
            "age":99,
            "sex":"女"
        },
        {
            "name":"廖三",
            "age":90,
            "sex":"男"
        },
        {
            "name":"王五",
            "age":99,
            "sex":"女"
        },
        {
            "name":"赵六",
            "age":99,
            "sex":"男"
        }
    ]
}

 


 

 

JSON原则:

1.封装JSON数组的Key,首先需要一个JSON对象来包围;

{
    "students":[

    ]
}

 

2.JSON数组里面能放置JSON对象:

[
    {

    }
]

  JSON数组里面也能放置JSON数组:

[
    [

    ]
]

  以下是❌错误示范:

    ["xxx":{}]

    ["xxx":"aaa"]

    ["xxx":[]]

 

3.key只能写在 JSON对象里面:

{
    "key":[
        {

        },
        {

        }
    ]
}

  以下是❌错误示范:

    "key":[{},{}]

    "key":{}