JavaScript有关XML、JSON

XML

XML一度是互联网上存储和传输结构化数据的标准。DOM标准不仅是为了在浏览器中使用,而且还为了在桌面和服务器应用程序中处理XML数据结构,在没有DOM标准时,开发者常使用js编写自己的XML解析器。
浏览器对使用js处理XML实现及相关技术提供支持
DOMParser类型时简单的对象,可以将XML字符串解析为DOM文档
XMLSerializer类型将DOM文档解析为XML字符串

JSON

JSON JavaScript object notation 是一种轻量级数据格式,便于表示复杂数据结构。相比XML更为简洁(JSON可以直接被解析成可用的JavaScript对象),且现在JavaScript、所有浏览器已经原生支持全局JSON对象。(许多语言也支持)
JSON支持3种类型的值

  1. 简单值:字符串、数值、布尔、null都可以,特殊值undefined不可以
  2. 对象:有序键/值对,值可以是复杂值,对象属性必须带双引号。JSON.stringify只序列化对象的可枚举自有属性,如果属性无法序列化就会从字符串中删除
  3. 数组

NaN、Infinity都会被序列化为null
JSON中字符串必须使用双引号

JSON对象

可对 JSON 字符串调用 eval()方法,就可将其转换为 JavaScript 对象,但是有点不太安全。
早期JSON解析器相当于JavaScript的eval()函数,因为JSON是JavaScript语法的子集

JSON.stringify(jsObject);//返回将jsObject对象序列化之后的JSON字符串
JSON.parse(jsonString);//返回与jsObject拥有相同属性和值的对象

JSON.stringify(jsObject,过滤器,控制缩进的内容);//数值代表缩进的空格数<=10

过滤器有两种形式:

  1. 数组:属性名keys的数组 [“age”,“name”]
  2. 函数,传参keys和value。常用箭头函数

parse(jsonString,还原函数);//也是过滤

toJSON方法
在对象内部定义toJSON方法,在调用stringify()函数时,会根据toJSON方法序列化。

JSON 里不允许注释,有很多变通方法。之一是向 JSON 对象增加一个“comment”元素,然后将注释内容当作元素的值。这里要避免创建两个同名元素,并且默认解析器会选择最后一个。比如:
({“a”:“This is a comment”, “a”:“CONTENT”})

对比

json数据的体量更小,传递速度更快,和JavaScript交互更方便(数据更容易解析)
xml对于数据的描述性更好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值