ajax怎么获取json数据和xml数据
Posted 三线码工
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax怎么获取json数据和xml数据相关的知识,希望对你有一定的参考价值。
ajax如何的发哦json数据和xml数据
ajax使用方法就不多=说了,参照这篇https://www.cnblogs.com/shangrao/p/12861845.html
json和xml不同的地方是得到响应方法。
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性
属性 | 描述 |
---|---|
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
xml文件
文件格式介绍:结构化数据
获取xml文件方法
1.Js解析xml格式
2.根据xml文本内容创建xml对象
3.获取元素节点的文本内容
4.获取元素的属性值
data.xml
<?xml version="1.0" encoding="utf-8"?> <bookstore> <book> <name>三国演义</name> <category>文学</category> <desc>描述</desc> </book> <book> <name>水浒传</name> <category>文学</category> <desc>草寇or英雄豪杰</desc> </book> <book> <name>西游记</name> <category>文学</category> <desc>妖魔鬼怪牛鬼蛇神什么都有</desc> </book> <book> <name>红楼梦</name> <category>文学</category> <desc>宝哥哥与林妹妹的爱情史</desc> </book> </bookstore>
HTML页面
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>json文件</title> <script type="text/javascript"> window.onload = function(){ var btn = document.getElementById(\'btn\'); btn.onclick = function(){ showBookInfo(); } function showBookInfo(){ document.getElementById(\'bookInfo\').innerHTML = \'\'; var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject(\'Microsoft.XMLHTTP\'); } console.log(\'第一步\'+xhr.readyState); xhr.open(\'get\',\'./data.xml\');//xml文件位置 console.log(\'第二步\'+xhr.readyState); xhr.send(null); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ var data = xhr.responseXML;//返回xml对象(所有内容--document) var bs = data.getElementsByTagName(\'bookstore\')[0];//得到bookstores节点 console.log(bs); var books = bs.getElementsByTagName(\'book\'); var tag = \'\'; for(var i=0;i<books.length;i++){//循环遍历内容 var book = books[i]; var name = book.getElementsByTagName(\'name\')[0]; var category = book.getElementsByTagName(\'category\')[0]; var desc = book.getElementsByTagName(\'desc\')[0]; tag += \'<tr><td>\'+getNodeText(name)+\'</td><td>\'+getNodeText(category)+\'</td><td>\'+getNodeText(desc)+\'</td></tr>\'; } var tbody = document.createElement(\'tbody\'); tbody.innerHTML = tag; document.getElementById(\'bookInfo\').appendChild(tbody); } } } } //获取文本节点内容 function getNodeText(node){ if(window.ActiveXObject){//IE return node.text; }else{//标准浏览器 if(node.nodeType == 1){ return node.textContent; } } } </script> </head> <body> <input type="button" value="点击" id="btn"> <div> <table id="bookInfo"> </table> </div> </body> </html>
json文件
文件格式介绍:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写
json简单说就是javascript中的对象和数组。{ } 这是对象, [ ] 这是数组。
获取数组内容只需要arr[索引]就可以了。
获取对象内容只需要 obj.属性名 就可以了。
解析下面的数据,整个json 文件 我们给他声明一个变量 叫datas。
datas 对象是可以放任何内容的,下面是有一个属性 total,一个数组 date,一个键值对 obj。
获取对象的值 直接 datas.total,就可以得到“4”了。
datas.data 就可以得到[....]一个数组了,数组有4个元素,这四个元素是四个不同的对象,obj.data[0],代表第一个数组,obj.data[0].name 就可以到第一个数组的name值 “三国演义”。
datas["adf"] 就可得到"aa"值。其实相当于数组,只不过下标可以自己去定义。
data.json
{ "total":"4", "data":[ { "name":"三国演义", "category":"文学", "desc":"一个军阀混战的年代" },{ "name":"水浒传", "category":"文学", "desc":"草寇or英雄好汉" },{ "name":"西游记", "category":"文学", "desc":"妖魔鬼怪牛鬼蛇神什么都有" },{ "name":"红楼梦", "category":"文学", "desc":"一个封建王朝的缩影" } ], "obj":{"adf":"aa"} }
html页面
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>json文件</title> <script type="text/javascript"> window.onload = function(){ var btn = document.getElementById(\'btn\'); btn.onclick = function(){ showBookInfo(); } function showBookInfo(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject(\'Microsoft.XMLHTTP\'); } xhr.open(\'get\',\'./data.json\'); xhr.onreadystatechange = function(){//回调函数 if(xhr.readyState == 4 && xhr.status == 200){ var data = JSON.parse(xhr.responseText);//得到数据 console.log(data);//打印数据 var total = data.total;//得到 4 值 var list = data.data;//得到data数组 var tag = \'\'; for(var i=0;i<total;i++){ var book = list[i]; tag += \'<tr><td>\'+book.name+\'</td><td>\'+book.category+\'</td><td>\'+book.desc+\'</td></tr>\'; } var tbody = document.createElement(\'tbody\'); tbody.innerHTML = tag; document.getElementById(\'bookInfo\').appendChild(tbody); } } xhr.send(null); } } </script> </head> <body> <input type="button" value="点击" id="btn"> <div> <table id="bookInfo"> </table> </div> </body> </html>
以上是关于ajax怎么获取json数据和xml数据的主要内容,如果未能解决你的问题,请参考以下文章
AJAX 响应:数据(JSON、XML)还是 HTML 片段? [关闭]
怎么用jsp生成json格式数据,然后用js又怎样读取其数据?