脚本宝典收集整理的这篇文章主要介绍了XML和JSON数据传输,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
xml文档:https://www.w3school.com.cn/xml/index.asp
Ajax请求的过程中,返回给我们的是一个类似于HTML 结构的数据格式,但是这个不是HTML代码而是XML格式数据,因为我们之前说过Ajax的x就是XML,也就是当初设计Ajax定义的数据传输的格式v
什么叫做标签预定义,也就是可以自己命名标签名
.xml文件
<?xml version="1.0" encoding="utf-8" ?> <jibenxinxi> <xuesheng> <xingming>小明</xingming> <xuehao>1</xuehao> <xingbie>男</xingbie> <age>18</age> <sex>男</sex > </xuesheng> </jibenxinxi>
浏览器会以特殊的样式展现
也就是说我们的请求接口比如我们http://127.0.0.1/1.php返回给我们的是下面的格式
<ul> <li>学号:1</li> <li>姓名:小明</li> <li>性别:男</li> <li>年龄:18</li> </ul>
使用xhr.responseText去接收,因为返回给我们的是一个字符串包裹的HTML结构,所以我们可以使用innerHTML去进行拼接,过程中可以识别字符串中的HTML结构
但是这样操作有很大的弊端:
返回给我们的如果是HTML的结构,此时注定拓展性不好,因为我们不需要固定结构,比如当前返回给我们的是一个ul和li 的结构但是我们此时页面中的功能不适用于这个ul和li的结构,所以我们需要自己进行拓展,这个时候我们就想到了JOSN格式
到现在我们回想一下,XML格式和JSON格式的各自的优点,我们会发现XML能干的事情,JSON也能干,JSON能干的事情,XML未必能行
Ajax读取进来的数据都是字符串,即便返回给我们的是JSON,也会被xhr.responseText识别为字符串
解决办法
方法1:使用eval()语句,eval()语句可以将字符串转换为代码语句
var data = xhr.responseText; var obj = eval("("+data+")")
返回的结果不可以直接放到eval()函数中,因为eval() 本质是转换JavaScript的语句的,所以如果我们想让他识别HTML结构代码可以使用括号包裹起来
方法2:是使用内置构造函数Function
var obj = (new Function("return"+xhr.responseText))()
通过内置构造函数进行一次周转,利用函数的return,将字符串去掉了
方法3:JSON.parse方法
var obj = JSON.parse(data)
现在工作最长用就是这种方法,因为它的兼容是IE6和7一下,所以我们基本已经不考虑这些兼容了
JOSN.parse()和JSON.stringify()方法是一对,JSON.parse()是将字符串转换为JSON格式,二JSON.stringify()方法是将JSON格式转换为字符串
以上是脚本宝典为你收集整理的XML和JSON数据传输全部内容,希望文章能够帮你解决XML和JSON数据传输所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。