JS:JSON篇

雨燕双飞 提交于 2020-01-14 20:01:48

1.什么是JSON,作用?
JSON是数据交换格式,作用:JSON可以将系统A与系统B交换数据; 如C语言与JAVA语言交换数据
2.JSON体积小,轻量级
3.实际开发中有两种数据交换格式:JSON和XML。XML体积大,解析麻烦,优点:语法严谨。(银行用它)

(1)JSON语法格式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>
    <script type="text/javascript">
        /*
        * 语法格式:var jsonObj={
            "属性名":"属性值",
            "属性名":"属性值",
            "属性名":"属性值",
            ....
        };
        * */

        //创建JSON对象(JSON也可以称为无类型对象。轻量级,体积小,容易解析)
        var studentObj={
            "sno":"110",
            "sname": "张三",
            "sex" : "男"
        };
        //访问JSON对象属性
        alert(studentObj.sno+","+studentObj.sname+","+studentObj.sex);

        //JSON数组
        var students=[
            {"sno":"110","sname":"张三","sex":"男"},
            {"sno":"111","sname":"李四","sex":"女"},
            {"sno":"112","sname":"王五","sex":"男"},
        ];

        //遍历
        for(var i in students){
            var stuObj=students[i];
            alert(stuObj.sno+","+stuObj.sname+","+stuObj.sex);
        }
    </script>
</body>
</html>

(2) 案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>复杂一些JSON对象</title>
</head>
<body>
    <script type="text/javascript">
        var user={
            "usercode":110,
            "username":"张三",
            "sex":true,
            "address":{
                "city":"北京",
                "street":"大兴区",
                "zipcode":234589,
            },
            "aihao":["吸烟","喝酒","唱歌"]
        }
        //访问人名以及居住城市
        alert(user.username+"居住在"+user.address.city);

        /*设计JSON格式数据:可以描述整个班级中每一个学生的信息,以及总人数的信息*/
        var classObj={
            "count":76,
            "classname":"高二<2>班",
            "location":"北京市朝阳区阳光小学",
            "students":{
                "name":["张三","李四","王五"],
                "aihao":["学习"]
            }
        }
        alert(classObj.classname+"在"+classObj.location+", 学生为"+classObj.students.name);
    </script>
</body>
</html>

(3) eval函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>eval函数</title>
</head>
<body>
    <script type="text/javascript">
        //eval函数的作用:将字符串当做一段JS代码解释并执行。
        window.eval("var i=123;");
        alert("i="+i);//123

        /*
        * java连接数据库,查询数据之后,将数据在Java程序中拼接成JSON格式的“字符串”,将json格式的字符串响应到浏览器,
        * 也就是说java响应到浏览器上的仅仅是一个“JSON格式的字符串”,还不是一个json对象,
        * 可以使用eval函数,将json格式的字符串转换成json对象。
        * */
        var fromJava="{\"name\":\"zhangsan\",\"password\":\"123\"}";//这是java程序给发过来的json格式的”字符串“
        //将以上的json格式的字符串转换成json对象
        window.eval("var jsonObj="+fromJava);
        //访问json对象
        alert(jsonObj.name+","+jsonObj.password);

        /*
        * 面试题:在JS代码中,[]和{}有什么区别?
        * []是JS数组,
        * {}是JSON
        * */
    </script>
</body>
</html>

(4) 设置table的tbody

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>设置table的tbody</title>
</head>
<body>
    <script type="text/javascript">
        //json数据
        var data={
            "total":4,
            "emps":[
                {"empno":7369,"ename":"SMITH","sal":800.0},
                {"empno":7361,"ename":"JACK","sal":1800.0},
                {"empno":7371,"ename":"TOM","sal":3800.0},
                {"empno":7380,"ename":"KOOK","sal":580.0},
            ]
        };
        //把数据展示到table当中
        window.onload=function () { 
            var displayBtnElt=document.getElementById("displayBtn");
            displayBtnElt.onclick=function () {
                var emps=data.emps;
                var html="";
                for(var i in emps){
                    var emp=emps[i];
                    html +="<tr>";
                    html +="<td>"+emp.empno+"</td>";
                    html +="<td>"+emp.ename+"</td>";
                    html +="<td>"+emp.sal+"</td>";
                    html +="</tr>";
                }
                document.getElementById("empbody").innerHTML=html;
                document.getElementById("count").innerHTML=data.total;
            }
        }
    </script>
    <input type="button" value="显示员工信息列表" id="displayBtn"/>
    <center><h1>员工信息列表</h1></center>
    <hr color="red">
    <table align="center" border ="1px" width="50%">
        <tr>
            <th>员工编号</th>
            <th>员工名字</th>
            <th>员工薪资</th>
        </tr>
        <tbody id="empbody">
        <!--<tr>
            <th>7369</th>
            <th>SMITH</th>
            <th>800.0</th>
        </tr>
        <tr>
            <th>7369</th>
            <th>SMITH</th>
            <th>800.0</th>
        </tr>
        <tr>
            <th>7369</th>
            <th>SMITH</th>
            <th>800.0</th>
        </tr>-->
        </tbody>
    </table>
    总共<span id="count"></span>条数
</body>
</html>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!