Ajax传输JSON

JSON语法

JSON(JavaScript Object Notation),是ECMAScript的子集,作用是进行数据的交换,而且由于语法更为简洁,网络传输,以及机器解析都更为迅速.

  • 语法规则:
    • 数据在键值对中
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组
  • 数据类型:

    下列内容 无论 键 值 都是用双引号包起来

    • 数字(整数或浮点数)
    • 字符串(在双引号中)
    • 逻辑值(true 或 false)
    • 数组(在方括号中)
    • 对象(在花括号中)
    • null
  • 示例代码 下部分代码看起来类似于定义JavaScript对象

    // 基本对象
    {
      "name":"fox",
      "age":"18",
      "sex":"true",
      "car":null
    }
    // 数组 
    [
      {
          "name":"小小胡",
          "age":"1"
      },
      {
          "name":"小二胡",
          "age":"2"
      }
    ]
    

JSON解析

接下来演示如何使用JavaScriptPHPJSON进行解析

JavaScript 中

  • 使用JSON对象

    • JSON.parse()方法:将JSON字符串转化为JavaScript对象
    • JSON.stringify()方法:将JavaScript对象,转化为JSON字符串
    • 由于老式IE(8以下)浏览器中没有JSON对象,通过导入JSON2.js框架即可解决,框架获取地址为:JSON2.js_github地址

      var Obj = {
        name:"fox",
        age:18,
        skill:"撩妹"
      };
      
      console.log(Obj);
      
      // 将JavaScript对象格式化为JSON字符串
      var jsonStr = JSON.stringify(Obj);
      
      console.log(jsonStr);
      
      // 将JSON字符串转化为JavaScript对象
      var jsonObj = JSON.parse(jsonStr);
      console.log(jsonObj);
      
  • 使用eval()方法 使用eval()方法需要注意的是,需要将内容使用()括号包裹起来,如示例代码``javascript <script type="text/javascript"> var jsonStr ={

      "name":"fox",
      "age":18,
      "skill":"撩妹"
    

    }`;

    var jsonObj = eval('('+jsonStr+')'); console.log(jsonObj);

</script>



### PHP中

* **json_decode()**方法: 将`json`字符串转化为变量
* **json_encode()**方法: 将变量转化为`json`字符串

* **示例代码:**
```php
<?php 
    header("Content-Type:text/html;charset=utf-8");
    // json字符串
    $jsonStr = '{"name":"itcast","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] => itcast [age] => 54 [skill] => 歌神 ) 
    {"name":"littleFox","age":13}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值