JSON已成web数据传输的首要选择,今天就来谈谈XML与JSON,包括两者的相同点与共同点,以及优缺点。
JSON:
javascript对象标记方法,一种轻量级的数据交换格式,是JavaScript的子集,由于是一种语言层面的规范,因此得以更好地在客户端解析使用。
数据格式:数字、布尔、字符串(双引号)、对象、数组、null,没有undefined。
良好的API支持(JSON.stringify,JSON.parse),可以在客户端实现javascript对象 与 JSON字符串之间的相互转化
stringify(jsonObj,function(){ //对序列化做过滤限制 },space);space用于对序列号结果做缩进结构化,增强易读性。
parse(jsonString,function(){ //对解析做过滤限制 })
JSON的序列化和解析目标如果是对象或数组,需要注意的是会首先解析这个主题(key值为""),每遇到一个对象成员,都会递归式地进行序列化或解析,首先处理好对象本身,才能过滤对象成员。因此,要做限制的时候需要注意。
//错误写法
var jsonObj = { name:"hezebing",sex:"male" }
JSON.stringify(jsonObj,function(key,value){
if( key === "name" ){
return value
}
})
//返回 : undefined
//正确写法
var jsonObj = { name:"hezebing",sex:"male" }
JSON.stringify(jsonObj,function(key,value){
if(key === ""){
//对象本身
return value
}else if( key === "name" ){
return value
}
})
//返回 : "{"name":"hezebing"}"
XML:
可扩展标记语言.优点在于描述数据凸显其结构性,亦即其UI性,在良好的UI层面增加新元素非常简单而清晰。
描述一个实体(person),没有限定属性或者子元素来定义实体的属性(身高,年龄,性别等等),带来了很多的灵活性,也造成了不同程序之间的差异习惯,可扩展意味着"多形态",某种层面的不统一。
当服务端发送XML文档至客户端后,需要客户端做解析为DOM树再做节点遍历来获取数据。
<school name="北大">
<colleages>
<!-- 经济学院 -->
<economy></economy>
<!-- 新增 达摩学院 -->
<damo></damo>
</colleages>
</school>
总结:
json轻便、解析简单,对客户端更加友好。
XML更加笨重,解析为DOM树并遍历节点来取数据,优点是结构清晰,扩展性好。
————————————————
原文链接:https://blog.csdn.net/qq_40882724/article/details/82421558