您当前的位置: 首页 > 网站编程 > PHP教程 > php使用json_encode对变量json编码

php使用json_encode对变量json编码

作者:不详 来源:网络 发布时间: 2014-08-03 14:41 点击:
这篇文章主要是说明 json_encode 使用时一个需要注意的细节,无论返回的是数组还是 json,都不代表这一定就是个错误的返回结果,当前端需要的数组时,数组就是正确的结果,反之亦然 在 ajax 横行的今天,json 顺理成章地成为了前后端交互一个极其重要的工具。对于 PHP

php使用json_encode对变量json编码

  这篇文章主要是说明 json_encode 使用时一个需要注意的细节,无论返回的是数组还是 json,都不代表这一定就是个错误的返回结果,当前端需要的数组时,数组就是正确的结果,反之亦然

  在 ajax 横行的今天,json 顺理成章地成为了前后端交互一个极其重要的工具。对于 PHP 来说,通常使用 json_encode 方法将一个 PHP 组数,转换成前端可以解析的 json 字符串,这也是 PHP 手册上描述的内容,但事实是这样的吗?看看下面这段代码:

  代码如下:

  $a = array( 'Jack' , 'Sam' , 'Tom' );

  echo json_encode( $a );

  当 JavaScript 请求到上面的代码,PHP 将解析数组 $a 为 json 字符串并返回到前端,但事实上在前端拿到的返回结果却是一个数组。

  代码如下:

  [ "Jack" , "Sam" , "Tom" ]

  这个结果对于前端来说也许并不是所期望的,对于 JavaScript 来说,数组和 json 的关系非常密切,甚至可以简单地把 json 理解为关联数组,但这并不意味着二者可以划等号,比如 json 没有 length 属性,也不能进行数字索引,json 是键值对,而 JavaScript 的数组严格说来是没有"键"的,这和 PHP 的差异比较大。那么为什么 json_encode 的返回结果是数组呢?

  本文开头的 PHP 代码中的数组是严格意义上的数字索引数组,json_encode 方法在处理这样的数组的时候会返回数组字符串,它需要同时满足两个条件:1. 数字索引数组,2. 索引值从 0 开始。这意味着下面的代码也会返回同样的结果:

  代码如下:

  $b = array(

  '0' => 'Jack',

  '1' => 'Sam',

  '2' => 'Tom'

  );

  echo json_encode( $b );

  这两个条件的任意一个没有获得满足,那么 json_encode 方法才真正的返回 json 字符串:

  代码如下:

  $c = array(

  'person-1' => 'Jack',

  'person-2' => 'Sam',

  'person-3' => 'Tom'

  );

  echo json_encode( $c );

  这时前端得到的结果如下:

  代码如下:

  {

  'person-1' : 'Jack',

  'person-2' : 'Sam',

  'person-3' : 'Tom'

  };
分享到:
本文"php使用json_encode对变量json编码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4