您的位置:首页 > Web前端 > JavaScript

Ajax生成xml和生成解析json

2018-04-03 18:38 267 查看
我们先来看看Ajax解析xml的过程:
首先我们先得需要一个数据表,如图



我们做的就是把test数据库下,student表下的数据先生成XML,然后在解析。
这里我们先写一个链接数据库和生成xml的文件的php
如图



链接数据库我就不多解释了请看,值得注意的是代码中画黑圈的地方,和划横线的地方比较一下,不难发现,多了一个点,小编在写这段代码的时候,运行时老是显示空白页,结果发现是这个点漏了。这个点意思就是添加的意思,如果没了就成了赋值,这个细节得注意一下。在代码的倒数第三行有个头,这个头的意思是告诉访问者这是一个xml文件,现在先不做解析。来看一下效果图这里我们用的谷歌浏览器



运行出来的文件和数据库一个不差,说明我们成功了,然后我们就去写一个访问者,这个属于小编自己命名的方法(每个人有不同的记忆方法,我把请求数据发送数据的叫做访问者)。代码如图



代码简单就是在Ajax的构造方法中多了两行代码  花圈的是返回一个XML文件,值的注意的是,被访问者不返回或者 echo,d这个对象就会为空,至于下一行代码也不难理解,xhr.responseXML返回的是结构明确的字符串,在加上在被访问者头的作用下,让浏览器更加明确该如何解析,把他解析成了一二叉树,跟js获取表格数据一样的二叉树,如图是一个树



这样就能很清楚解析出每个数据。

XML之所以广泛,就因为XML数据结构化明确,适合大数据传输。
但是,在PHP中生成XML数据时,需要我们填写很对生成标签,然后声明响应头尾XML;
而在JS解析时,也要进行DOM节点的遍历查找;
而字符串,没有结构化,容易造成混乱,无法完成大量数据的传输;
难道,我们就不能创造一种具有结构明确的字符串格式吗?
生成和解析简单,易读且结构化明确,适合大数据传输的字符串结构:JSON
我们再来看看解析JSON:
具体操作步骤和上面解析XML差不多
数据还是上面的数据
这是本访问者



我们这里用了一个数组来储存数据,容易操作
在末尾我们用了json_echcode()这个函数把数组里的数据处理成json的格式我们来看一下


这就是json的格式

访问者如图



这里无非多了个json.parse的函数,这个就当与翻译器,然后用一个循环把他们输出来,注意的是,翻译过来的是数组。

小知识:

在接着往下学的时候我就对四个函数产生了混乱,分别是JSON.stringify()、JSON.parse()、JSON_encode()、JSON_decode();
我相信也有人会遇到同样的问题,经过研究
JSON.stringify()、JSON.parse()是JavaScript中函数

JSON_encode()、JSON_decode()是PHP中的函数
JSON.stringify()和JSON_encode()都是把普通字符串转换成JSON字符串

JSON.parse()和JSON_decode()都是把JSON字符串转换成普通字符串

上面的从操作从大方面就是把数据从数据库导出来,然后利用json进行处理,以便更好的处理数据。我在这里称为大生成。
现在我们是把数据向数据库里存,我这里称为大解析。
首先我们先准备一下数据库



这是数据库名为test,表为student,现在一个数据都没有
访问者的代码如下:这里用一个无刷新注册小案例来诠释一下
如图



访问者效果图:



被访问者代码:



特别注意:这里有一个json_decode的代码,是为了把传过来的json字符串转换成普通字符串,这里在后面还有一个参数,true表示返回一个数组,默认为false返回的是一个对象,一般我们都会用数组,这样操作数据方便。
具体操作我们先输入一个姓名为张三,年龄为18,性别为男的数据



这里会返回一个结果告诉你是否添加成功,接下来我们来看看数据库是否被添加



结果已经显示,说明我们已经成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Ajax