Ajax拿取JSON格式的数据

7 篇文章 0 订阅

JSON简介

  • JSON(javaScript Object Notation) 一种简单的数据格式,比xml更轻巧。 JSON是javaScript原生格式。这意味着在 javaScript中处理JSON数据不需要任何特殊的API或工具包。
  • JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(做括号)开始,“}”(右括号)结束。但每个“名称”后跟一个“ :”(冒号);“’名称/值‘对”之间使用“,”(逗号)分隔。

解析JSON

  • JSON只是一种文本字符串,它被存储在responsetext属性中
  • 为了读取存储在responseText属性中的JSON数据,需要根据javaScript对eval语句。函数eval会把一个字符串当作它对参数,然后这个字符串会被当作javaScript代码来执行。因为JSON 对字符串就是由javaScript代码构成的,所以它本身是可执行的
  • JSON提供了json.js包,下载http://www.json.org/json.js后,使用parseJSON()方法将字符串解析JS
var jsonResponse=xhr.responseText;
        var personObject=jsonResponse.parseJSON();
        var name=personObject.person.name;
        var website=personObject.person.website;
        var email=personObject.person.email;

JSON小结

优点:
  • 作为一种数据传输格式,JSON与XML很相似,但是它更加灵巧。
  • JSON不需要从服务器端发送含有特定内容类型的首部信息
缺点
  • 语法过于严谨
  • 代码不易读
  • eval函数存在风险

解析JSON文件代码示例

1、json数据(所在文件:json,js)代码:

{
    "person": {
    "name": "JBK",
        "website": "http://baidu.com/",
        "email": "15204510180@163.com"
}
}

2、解析代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        window.onload = function () {
            var  as= document.getElementsByTagName("a");

            for(var i=0;i< as.length;i++){
                as[i].onclick= function () {

                    var request = new XMLHttpRequest();
                    var url = this.href;
                    var method="GET";
                    request.open(method,url);
                    request.send(null);
                    request.onreadystatechange= function () {
                        if( request.readyState==4){
                            if(request.status==200||request.status==304){                                var result=request.responseText;
                                var objectJSON=eval("("+result+")");
//                                2、结果不能直接使用,必须先创建对应但节点,再把节点加入到#detail中
//                                目标格式为:
//                                      <h2><a href="mailto:15204510180@163.com">JBK</a></h2>
//                                      <a href="http://baidu.com/">http://baidu.com</a>
                                var name=objectJSON.person.name;
                                var website=objectJSON.person.website;
                                var email=objectJSON.person.email;
                                //alert(name);
                                //alert(website);
                                //alert(email);
                                var aNode=document.createElement("a");
                                aNode.appendChild(document.createTextNode(name));
                                aNode.href="maelto:"+email;

                                var hNode=document.createElement("h2");
                                hNode.appendChild(aNode);

                                var aNode1=document.createElement("a");
                                aNode.appendChild(document.createTextNode(website));
                                aNode.href=website;

                                var dNode=document.getElementById("details");
                                dNode.innerHTML="";
                                dNode.appendChild(aNode);
                                dNode.appendChild(aNode1)


                            }

                        }
                    }
                    return false;

                }
            }



        }
    </script>
</head>
<body>
<a href="json.js">1</a>
<a href="json.js">2</a>
<a href="json.js">3</a>
<a href="json.js">4</a>
<div id="details"></div>

</body>
</html>

三种数据格式对比小结

  • 若应用程序不需要与其他应用程序共享数据的时候,使用HTML片段来返回数据时最简单
  • 如果数据需要重用,JSON文件是个不错的选择,其在性能和文件大小方面有优势
  • 当远程应用程序未知时,XML文档是首选,因为XML是web服务器领域的“世界语”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值