JSON 其实没有那么难 !!!

什么是 JSON ?

1. JSON: JavaScript Object Notation(JavaScript 对象表示法)

2. JSON 是存储和交换文本信息的语法。类似 XML3. JSONXML 更小、更快,更易解析。

示例:

{
  "name": "zhansan",
  "age": 12,
  "lover": [
    "coding",
    "swimming",
    "singing"
  ],
  "friend": {
    "high": "180cm",
    "weight": "80kg",
    "lover": [
      "swimming",
      "singing",
      "dancing"
    ],
    "friend": {}
  }
}

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

1. 数据在名称/值对中
2. 数据由逗号分隔
3. 大括号保存对象
4. 中括号保存数组

小试牛刀

前端代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript">
    // 对象
    /*
    json数据和普通的js对象的区别:
    1、json数据没有变量
    2、json形式的数据结尾没有分号
    3、json数据中的键必须用双引号包住
    */
    // var obj = {
    //     name: 'zhangsan',
    //     age : 12,
    //     lover : ['coding','singing','dancing'],
    //     friend : {
    //         high : '180cm',
    //         weight : '80kg'
    //     }
    // };

    // var str = '{"name":"zhangsan","age":"12"}';
    // var obj = JSON.parse(str); //把json形式的字符串转成对象

    // var str1 = JSON.stringify(obj); //把对象转成字符串
    // console.log(str1); //{"name":"zhangsan","age":"12"}


    window.onload = function () {
      var btn = document.getElementById('btn');
      btn.onclick = function () {
        var uname = document.getElementById('username').value;
        var pw = document.getElementById('password').value;

        // 1、创建XMLHttpRequest对象
        var xhr = null;
        if (window.XMLHttpRequest) {
          xhr = new XMLHttpRequest(); //标准
        } else {
          xhr = new ActiveXObject("Microsoft"); //IE6
        }
        // readyState=0表示xhr对象创建完成
        // 2、准备发送
        var param = 'username=' + uname + '&password=' + pw;
        // xhr.open('post','data.json',true);
        xhr.open('post', '07.php', true);
        // 3、执行发送动作
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send(param); //post请求参数在这里传递,并且不需要转码
        // 4、指定回调函数
        // 该函数调用的条件就是readyState状态发生变化(不包括从0变为1)
        xhr.onreadystatechange = function () {
          if (xhr.readyState == 4) {
            if (xhr.status == 200) {
              var data = xhr.responseText;
              console.log(data, typeof data)
              // var data = JSON.parse(data);
              // // console.log(data[0],data[1],data[2]);
              // console.log(data.name1);
              // console.log(data.name2);
              // console.log(data.name3);
              // var d = eval("(" + data + ")");//eval的作用就是把字符串解析成js代码并执行
              // var d = JSON.parse(data);
              // console.log(d.name);
              // console.log(d.age);
              // console.log(d.friend.high);
              // console.log(d.friend.weight);
              // console.log(d.friend.lover);

              // var tag = '<div><span>'+d.name+'</span><span>'+d.age+'</span><span>'+d.lover+'</span><span>'+d.friend.high+'</span></div>';
              // document.getElementById("showInfo").innerHTML = tag;
            }
          }
        }

      }
    }
  </script>
</head>

<body>
  <form>
    用户名:
    <input type="text" name="username" id="username"><span id="info"></span>
    <br> 密码:
    <input type="text" name="password" id="password">
    <input type="button" value="登录" id="btn">
  </form>
  <div id="showInfo"></div>
</body>

</html>

PHP代码:

<?php

// echo '{"username":"zhangsan","age":"12"}';
// --------------------------------------------------
// $uname = 'wangwu';
// $age = '13';
// echo '{"username":"'.$uname.'","age":"'.$age.'"}';
// --------------------------------------------------
// json_encode() 作用:就是把数组转化成json形式的字符串
// $arr = array(1,2,3);
// $arr = array("tom","jerry","spike");
$arr = array("name1" => "tom", "name2" => "jerry", "name3" => "spike");
$str = json_encode($arr);
echo $str;

如果这篇文章能够帮助到你,希望您不要吝惜点赞 ,您的支持是我继续努力的动力 !!!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设有一份名为data.json的文件,内容如下: ``` { "employees": [ { "firstName": "John", "lastName": "Doe", "age": 25, "gender": "male", "department": "IT" }, { "firstName": "Jane", "lastName": "Doe", "age": 30, "gender": "female", "department": "HR" }, { "firstName": "Bob", "lastName": "Smith", "age": 45, "gender": "male", "department": "Marketing" } ] } ``` 我们可以使用JavaScript的XMLHttpRequest对象来获取这份json数据,并将其展示在HTML页面中。具体实现如下: ``` <!DOCTYPE html> <html> <head> <title>Load data from JSON file</title> </head> <body> <div id="employees"></div> <script> var xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象 xhr.onreadystatechange = function() { //定义请求状态变化的回调函数 if (this.readyState == 4 && this.status == 200) { //如果请求成功 var data = JSON.parse(xhr.responseText); //解析json数据 var employees = data.employees; //获取员工信息数据 var html = ""; for(var i=0; i<employees.length; i++) { //循环生成HTML代码 html += "<p>姓名:" + employees[i].firstName + " " + employees[i].lastName + "</p>"; html += "<p>年龄:" + employees[i].age + "</p>"; html += "<p>性别:" + employees[i].gender + "</p>"; html += "<p>部门:" + employees[i].department + "</p><hr>"; } document.getElementById("employees").innerHTML = html; //将HTML代码插入页面中 } }; xhr.open("GET", "data.json", true); //打开请求 xhr.send(); //发送请求 </script> </body> </html> ``` 这段代码通过XMLHttpRequest对象获取data.json文件中的json数据,并解析为JavaScript对象。然后根据员工信息数据动态生成HTML代码,最后将HTML代码插入页面中展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值