JSON、XML对比及JS中的JSON

博客迁移

不恰饭的小站

JSON JSON是一种轻量级的数据交换格式。它易于人类读写,也方便机器解析与生成。

主要形式 主要有两种形式,一种以Key-Value(键值对)形式,另一种以有序值列(数组)

主要类型 object:

bash { "key1": "value1", "key2": "value2" }array:

bash [ "first", "second", "third" ]

string:

bash "This is a string"

number:

3.1415926 ```boolean:

```bash true false ```null:

```bash null ```

## Schema JSON Schema是用于注释和验证 JSON文档的JSON串。它本身是一个JSON串,但是其内容为JSON数据的描述性内容,下面举例说明 现有JSON数据串:

```bash {     "first_name": "George",   "last_name": "Washington",  
"birthday": "1732-02-22",   "address": {
    "street_address": "3200 Mount Vernon Memorial Highway",
    "city": "Mount Vernon",
    "state": "Virginia",
    "country": "United States"   } } ```从JSON数据串中我们看到,有first_name、last_name、birthday、address几个属性,分别为string、string、string、object类型,其中birthday是string中的日期类型。

那可以定义Schema串, ```bash {   "type": "object",   "properties": {
    "first_name": { "type": "string" },
    "last_name": { "type": "string" },
    "birthday": { "type": "string", "format": "date" },
    "address": {
      "type": "object",
      "properties": {
        "street_address": { "type": "string" },
        "city": { "type": "string" },
        "state": { "type": "string" },
        "country": { "type" : "string" }
      }
    }   } } ```通过Schema串,我们可以做数据验证。当我们传入给Schema串的数据内容符合时,可以验证通过,否则无法通过验证。
# XML XML 可扩展标记语言, 是一种可自定义标记的数据交换格式。
## 主要形式 标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明( DTD)和序言 具体规则如下: 1、必须有声明语句。  XML声明是XML文档的第一句,其格式如下:  ```bash <?xml version="1.0"
encoding="utf-8"?> ```

2、注意大小写
    在XML文档中,大小写是有区别的。“\<P>”和“\<p>”是不同的标记。注意在写元素时,前后标记的大小写要保持一致。最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母,这样可以减少因为大小写不匹配而产生的文档错误。
3、XML文档有且只有一个根元素
    良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。
4、属性值使用引号
    在HTML代码里面,属性值可以加引号,也可以不加。但是XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。
5、所有的标记必须有相应的结束标记
    在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。  6、所有的空标记也必须被关闭
    空标记是指标记对之间没有内容的标记,比如“\<img>”等标记。在XML中,规定所有的标记必须有结束标记。
# XML 与 JSON 对比 看下面的一个例子,分别肜XML和JSON描述雇员(employees) JSON Example

```bash {"employees":[   { "firstName":"John", "lastName":"Doe" },   {
"firstName":"Anna", "lastName":"Smith" },   { "firstName":"Peter",
"lastName":"Jones" } ]} ```XML Example

```bash <employees>   <employee>
    <firstName>John</firstName> <lastName>Doe</lastName>   </employee>   <employee>
    <firstName>Anna</firstName> <lastName>Smith</lastName>   </employee>   <employee>
    <firstName>Peter</firstName> <lastName>Jones</lastName>   </employee> </employees> ```

## 相同点

 - 两者都是自描述的(人类可读)
 - 都支持分层结构(一个节点下有另一个节点)
 - 都有大量的语言支持

## 差异
- XML 由W3C(万维网联盟)组织支持,JSON由ECMA(欧洲计算机制造商协会)支持
- JSON没有结束标记
- JSON支持数组
- XML文件格式复杂,传输占带宽

## 优缺对比

> https://www.cnblogs.com/SanMaoSpace/p/3139186.html

 
1. 可读性方面。 JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
2.  可扩展性方面 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
3.  编码难度方面 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
4.  解码难度方面 XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
5.  流行度方面 XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous
Javascript and JSON)了。
6.  解析手段方面 JSON和XML同样拥有丰富的解析手段。
7.  数据体积方面 JSON相对于XML来讲,数据的体积小,传递的速度更快些。
8.  数据交互方面 JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互
9.  数据描述方面  JSON对数据的描述性比XML较差。
10. 输速度方面 JSON的速度要远远快于XML。

# JS中的JSON

> http://cncc.bingj.com/cache.aspx?q=JSON+in+javascript&d=4751934830347762&mkt=zh-CN&setlang=zh-CN&w=GFLVRVLT8SNw7gs54INd8uGpoueIVwcu

JSON源于JavaScript(“JSON” 是 "JavaScript Object Notation"的简写)。
JSON的格式与Js的语法有多相似之处

JSON:

```bash {    "first_name"  :  "Sammy",    "last_name"   :  "Shark",   
"online"      :  true  } ```JS:

```bash var sammy = {    "first_name"  :  "Sammy",    "last_name"   : 
"Shark",    "online"      :  true  } ```
## JS与JSON相互转化
### JSON.stringify() 函数功能:将Js对象转化为字符串 ```bash var obj = {"first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean"}

var s = JSON.stringify(obj) ```s的值现在为一个字符串: ```bash '{"first_name" :
"Sammy", "last_name" : "Shark", "location" : "Ocean"}' ```

### JSON.parse() 函数功能:将字符串转化为Js对象 将上一步过程中得到的变量s通过函数即可生成Js对象 ```bash var o = JSON.parse(s) ```
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值