PHP中二维数据格式的问题

下面是一段错误格式的Josn数据格式的代码,貌似是单引号的问题,反正就是通过ajax获取不到数组里面的key和value值。分别贴出ajax请求的代码,以及php中json数据的代码。

 1 window.onload = function () {
 2         //1、创建XMLHttpRequest对象
 3         var xhr = null;
 4         if(window.XMLHttpRequest){
 5             xhr = new XMLHttpRequest();
 6         } else {
 7             xhr = new ActiveXObject("Microsoft.XMLHTTP");
 8         }
 9         //2、调用open()方法
10         xhr.open("get","07getStudents.php",true)
11         //3、发送请求
12         xhr.send(null);
13         //4、制定回调函数
14         xhr.onreadystatechange = function () {
15             if(xhr.readyState == 4){
16                 if(xhr.status == 200){
17                     var result = xhr.responseText;
18                     console.log(result);
19                     result = JSON.parse(result);
20                     console.log(result);
21                     for(var i = 0;i < result.length;i++){
22                         var s = result[i];
23                         console.log(s.name);
24                         console.log(s.age);
25                         console.log(s.sex);
26                     }
27                 }
28             }
29         }
30     };
1 <?php
2     $arr = array(
3            "0"=>array('name':'张三','age':19,'sex':'男'),
4            "1"=>array('name':'张三','age':19,'sex':'男'),
5            "2"=>array('name':'张三','age':19,'sex':'男')
6            );
7     echo json_encode($arr);
8 ?>

运行代码后,报错信息如下:大概意思json数据格式有问题,所以转换为对象时出现了错误。故不能通过对象.属性的方式获取数据。

即使把php中的数据换成下面的格式也报同样的错误:

1 <?php
2     $array = array(
3            "0"=>array("name":"张三","age":19,"sex":"男"),
4            "1"=>array("name":"张三","age":19,"sex":"男"),
5            "2"=>array("name":"张三","age":19,"sex":"男")
6            );
7     echo json_encode($array);
8 ?>

知道是数据格式的问题后,一直不停的换格式,细到连换行都没放过。直到php中的代码改为如下以后才可访问到:

 1 <?php
 2     $arr=array(
 3                "0"=>array(
 4                    "name"=>"张三",
 5                    "age"=>19,
 6                    "sex"=>"男"
 7                ),
 8                "1"=>array(
 9                    "name"=>"张三",
10                    "age"=>19,
11                    "sex"=>"男"
12                ),
13                "2"=>array(
14                    "name"=>"张三",
15                    "age"=>19,
16                    "sex"=>"男"
17                )
18            );
19     echo json_encode($arr);
20 ?>

搞了半天,原来是:的问题,把:换为=>即可。因为这就是php中数组下标和数组值的赋值关系。

猜你喜欢

转载自www.cnblogs.com/banyouxia/p/10954767.html