PHP中的json_encode和json_decode

摘要

随着网络技术的不断发展与革新,网站开发模式也在发生着微妙的变化。原先的传统开发模式已经慢慢地被前后端分离模式所取代。出现这样的结果有利也有弊,站在长远的角度来看利大于弊。

为什么要强调前后端分离呢?原因在于前后端分离后,后端只负责提供接口,其余的事全权交接到前端开发人员的手中了。相比较于传统开发模式,后端的工作量将减少许多。换句话说:一切依赖接口后,如果你碰到一个“坑爹”的后端开发人员,那么你的“好日子”也将到头了。

随着网络技术的不断发展与革新,网站开发模式也在发生着微妙的变化。原先的传统开发模式已经慢慢地被前后端分离模式所取代。出现这样的结果有利也有弊,站在长远的角度来看利大于弊。

为什么要强调前后端分离呢?原因在于前后端分离后,后端只负责提供接口,其余的事全权交接到前端开发人员的手中了。相比较于传统开发模式,后端的工作量将减少许多。换句话说:一切依赖接口后,如果你碰到一个“坑爹”的后端开发人员,那么你的“好日子”也将到头了。

现在网站开发中,接口一般会以JSON的形式返回数据给我们。前端人员拿到接口返回的数据后再做相应处理显示到前台页面。说了这么多,终于引出了今天的主题:后台是如何将数据转换成JSON格式并返回给前台的。

笔者所在公司后台开发语言用到的是PHP,所以笔者将以PHP语言来进行讨论。

看似相当有技术的含量的工作,其实对于了解过PHP的人来说一点都不算神秘。在日常的PHP开发工作中,我们经常要用到json_encode函数和json_decode函数。这是PHP语言自带的两个函数,json_encode函数的作用是将数组或对象转换为JSON格式、json_decode函数的作用是将JSON字符串转换为相应的PHP数据结构。

特别说明一点,JSON对数据格式要求异常严格,其只接受UTF-8编码的字符。因此,json_encode的参数必须是UTF-8编码。

举个例子:

  1. <?php
  2.  $arr = [
  3.     'name' => 'shaw',
  4.     'age' => 18
  5.  ];
  6.  echo json_encode($arr); // {"name":"shaw","age":18}
  7.  ?>

看到这里,你是不是觉得写接口特别简单呢?老实说:如果单纯输出数据确实没什么技术含量,不过后端一般在输出数据前需要做大量的逻辑判断与数据操作。

说完了json_encode,必然要看一看json_decode的操作了。

举个例子:

  1. <?php
  2.  $json = '{"name":"shaw","age":18}';
  3.  var_dump(json_decode($json, true));
  4.  // array(2) {
  5.  //   ["name"]=>
  6.  //  string(4) "shaw"
  7.  //  ["age"]=>
  8.  //  int(18)
  9.  // }
  10.  ?>

json_decode可以接受一个bool值true来将数据转换为数组格式。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: