加入收藏 | 设为首页 | 会员中心 | 我要投稿 92站长网 (https://www.92zz.com.cn/)- 语音技术、视频终端、数据开发、人脸识别、智能机器人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php将json转成数组对象的方法

发布时间:2023-10-19 11:02:15 所属栏目:PHP教程 来源:网络
导读:   JSON是一种轻量级的数据交换格式,具有结构清晰、易于读写等特点。PHP内置JSON处理函数,可以很方便地将JSON转化为数组或对象形式。



  假设我们有如下JSON数据:



  {
  JSON是一种轻量级的数据交换格式,具有结构清晰、易于读写等特点。PHP内置JSON处理函数,可以很方便地将JSON转化为数组或对象形式。
 
  假设我们有如下JSON数据:
 
  {
 
      "name": "Tom",
 
      "age": 20,
 
      "address": {
 
          "province": "Guangdong",
 
          "city": "Guangzhou"
 
      },
 
      "hobbies": [
 
          "reading",
 
          "swimming"
 
      ]
 
  }
 
  复制代码
 
  使用PHP的json_decode()函数可以将其转化为数组对象。函数的用法如下:
 
  array|object json_decode(string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]])
 
  复制代码
 
  参数说明:
 
  $json:需要解码的JSON字符串。
 
  $assoc(可选):当该参数为真时,将返回数组形式,为假时返回对象形式。默认为假。
 
  $depth(可选):设置解析JSON数据的最大深度。默认为512,超出范围将返回null。
 
  $options(可选):设置JSON解码器的选项,如JSON_BIGINT_AS_STRING可以将大整数视为字符串返回。
 
  代码示例:
 
  $jsonStr = '{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }';
 
  $array = json_decode($jsonStr, true);
 
  print_r($array);
 
  复制代码
 
  输出结果:
 
  Array
 
  (
 
      [name] => Tom
 
      [age] => 20
 
      [address] => Array
 
          (
 
              [province] => Guangdong
 
              [city] => Guangzhou
 
          )
 
      [hobbies] => Array
 
          (
 
              [0] => reading
 
              [1] => swimming
 
          )
 
  )
 
  复制代码
 
  可以看到,json_decode()函数将JSON字符串转化为了PHP数组对象。
 
  如果要将JSON数据转化为PHP对象形式,可以去掉函数中的第二个参数或将其设置为false。
 
  除了将JSON数据转化为数组或对象形式,PHP还可以将数组或对象形式的数据编码为JSON字符串。这可以使用PHP的json_encode()函数实现。函数用法如下:
 
  string json_encode(mixed $value[, int $options = 0[, int $depth = 512]])
 
  复制代码
 
  参数说明:
 
  $value:需要编码为JSON字符串的值。
 
  $options(可选):设置JSON编码器的选项,如JSON_PRETTY_PRINT可以使编码后的JSON字符串更易于阅读。
 
  $depth(可选):设置编码JSON数据的最大深度。默认为512,超出范围将返回空字符串。
 
  代码示例:
 
  $array = array(
 
      'name' => 'Tom',
 
      'age' => 20,
 
      'address' => array(
 
          'province' => 'Guangdong',
 
          'city' => 'Guangzhou'
 
      ),
 
      'hobbies' => array(
 
          'reading',
 
          'swimming'
 
      )
 
  );
 
  $jsonStr = json_encode($array, JSON_PRETTY_PRINT);
 
  echo $jsonStr;
 
  复制代码
 
  输出结果:
 
  {
 
      "name": "Tom",
 
      "age": 20,
 
      "address": {
 
          "province": "Guangdong",
 
          "city": "Guangzhou"
 
      },
 
      "hobbies": [
 
          "reading",
 
          "swimming"
 
      ]
 
  }
 

(编辑:92站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章