ajax传输的数据格式(XML,json)怎么获取解析
2017-02-13 00:00
846 查看
ajax传输数据格式
ajax传输XML
XML介绍
XML 指可扩展标记语言EXtensible Markup Language,虽然格式和html类似,但是是用来传递数据的。<?xml version="1.0" encoding="UTF-8"?> <singer> <name>周杰伦</name> <age>18</age> <skill>途牛</skill> </note>
XML是纯文本,这点跟HTML很像,所以我们可以用任何的文本编辑软件去打开编辑它
XML语法
第一行是XML的声明,指定XML版本(1.0)以及使用的编码(UTF-8万国码)<?xml version="1.0" encoding="UTF-8"?>
自定义标签:XML中没有默认的标签,所有的标签都是定义者自定义的
<!-- 下列标签都是被允许的 --> <fox></fox> <name></name>
双标签:XML中没有单标签,都是双标签
<haha>标签内</haha>
根节点:XML中必须有一个根节点,所有的子节点都放置在根节点下
<root> <name></name> </root>
XML属性跟HTML一样,XML的标签里面也能够添加属性type = 'text',但是不建议这样用,而是使用标签的方式来表述内容
<!-- 使用属性配合标签表述信息 --> <person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <!-- 使用标签来表述信息 --> <person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
XML解析:因为XML就是标签,所以直接用解析Dom元素的方法解析即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <person id='personXML'> <name>fox</name> <age>18</age> <skill>小花花</skill> </person> </body> </html> //获取方法 <script type="text/javascript"> var xmlObj = document.getElementById("personXML"); var name = xmlObj.getElementsByTagName('name')[0].innerHTML; console.log(name); </script>
PHP中设置Header:在php中如果要使用xml传输数据,需要使用header()设置返回的内容为xml
header('content-type:text/xml;charset=utf-8');
ajax传输json
JSON语法JSON(JavaScript Object Notation),是ECMAScript的子集,作用是进行数据的交换,而且由于语法更为简洁,网络传输,以及机器解析都更为迅速.
语法规则
数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
数据类型
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
// 基本对象 { "name":"fox", "age":"18", "sex":"true", "car":null } // 数组 [ { "name":"小小胡", "age":"1" }, { "name":"小二胡", "age":"2" } ]
JSON解析
JSON.parse()方法:将JSON字符串转化为JavaScript对象
JSON.stringify()方法:将JavaScript对象,转化为JSON字符串
由于老式IE(8以下)浏览器中没有JSON对象,通过导入JSON2.js框架即可解决,框架获取地址为:JSON2.js_github地址
<script type="text/javascript"> var Obj = { name:"fox", age:18, skill:"study" }; console.log(Obj); // 将JavaScript对象格式化为JSON字符串 var jsonStr = JSON.stringify(Obj); console.log(jsonStr); // 将JSON字符串转化为JavaScript对象 var jsonObj = JSON.parse(jsonStr); console.log(jsonObj); </script>
使用eval()方法:需要注意的是,eval方法需要将内容使用()包起来
<script type="text/javascript"> var jsonStr ={ "name":"fox", "age":18, "skill":"study" }; var jsonObj = eval('('+jsonStr+')'); console.log(jsonObj); </script>
PHP中
**json_decode()**方法: 将
json字符串转化为变量
**json_encode()**方法: 将变量转化为
json字符串
<?php header("Content-Type:text/html;charset=utf-8"); // json字符串 $jsonStr = '{"name":"易峰","age":54,"skill":"歌神"}'; // 字符串转化为 php对象 print_r(json_decode($jsonStr)); echo "<br>"; // php数组 $arrayName = array('name' =>'littleFox' ,'age' => 13 ); // php对象 转化为 json字符串 print_r(json_encode($arrayName)); ?> //输出结果为: stdClass Object ( [name] => 易峰 [age] => 54 [skill] => 歌神 ) {"name":"littleFox","age":13}
注意点
如果不牵扯到将数据发送到服务器,那么get和post请求唯一的区别只有open方法中设置的请求方法。get方法发送数据是url之后拼接;
post发送数据是通过send方法发送:.send('name=jack&age=18'),格式就是key=value&key2=value2的字符串。
如果想要使用Post发送数据给服务器,需要进行如下设置:.setRequestHeader('Content-type','application/x-www-form-urlencoded'),在open和send之间添加这行代码。
.setRequestHeader():能够设置一些自定义的键值对。
array_random(array,number):随机的数组,取几个。(取数组中的随机键)。
读取文本文档:file_get_contents(url);
字符串转化为数组,并且通过,分隔:explode(',',要要分隔的字符串);
wamp:window apache php mysql(数据库关键,用来保存数据,对于数据的稳定性、安全性有很多种策略予以保护。)
常见的数据库软件:oracle/mssql(sql server)/mysql/mongdb。
如果使用post的时候不发送任何数据,那么setRequestHeader()可以不写。
ajax配合Php获取xml:如果不做任何的设置仅仅只是读取并返回,那么xml就只是字符串而已(并不好用);
使用:服务端(php代码中需要使用header方法设置,返回的内容是xml);浏览器端ajax对象中获取返回的内容的属性不是responseText了,而是另一个responseXML。
解析方式:在浏览器端如果是通过ajax.responseXML获取的xml对象,就是一个文档对象,支持html页面中默认的documnet.querySelector的方法获取内部元素(document.getElmenetById,document.getElementsByTagName等这些方法都是支持的。)
如果服务器端返回的是xml数据,responseText中也可以获取到字符串,但是处理很麻烦。
json是一种排列数据的格式,载体是字符串,基本上所有的语言都支持json格式的字符串转化为该语言对应的对象。
json:键和值都必须写上双引号,但是如果值是数字可以不加双引号。
JSON.parse();json数据转化为js识别的数据。
使用方式:
浏览器:获取从服务器返回的json格式字符串通过ajax.responseText(获取到的是字符串)----JSON.parse(ajax.responseText)
服务器:准备一个json文件,按照json格式去写内容;json文件中两边的单引号可以不写,因为读出来就是字符串;读取并返回:echo file_get_contents('info/xxx.json');
记得写完的文件放在配置好的网站根目录中,然后开启http服务,在网页中输入127.0.0.1访问哦,如果还不会,可以参考我的一篇博客:WAMP集成环境部分
这些数据格式都了解了吗?在实际应用开发中,我遇到比较多的都是json数据格式,转换的话是非常容易的,多试几次就可以了,或者直接收藏了需要的时候查看一下就OK了。
相关文章推荐
- javascript 解析ajax返回的xml和json格式的数据
- 怎么获取pm2.5数据----pm2.5 的获取 java 通过url获取后,得到json 格式,在解析json
- javascript解析ajax返回的xml和json格式数据实例详解
- javascript 解析ajax返回的xml和json格式的数据
- javascript 解析ajax返回的xml和json格式的数据
- S2SH+ajax+json-----jQuery中$.ajax解析xml、json格式数据
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及文件上传的部分
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及非文件上传的部分
- jQuery中$.ajax解析xml、json格式数据
- struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)
- Android 获取Google Weather API 并通过Xml和JSON解析数据
- Android 获取Google Weather API 并通过Xml和JSON解析数据
- Ajax中使用XML和JSON格式传输的优劣比较
- Android学习笔记---26_采用JSON格式返回数据给资讯客户端,效率上要高于xml文件解析和传输
- android:通过url向网络端获取json格式数据并解析显示
- 发送Ajax请求获取JSON格式数据
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- ajax--json格式获取数据
- android xml解析技术 json数据传输技术
- WindowsPhone中XML和Json格式的数据解析