低版本php对json的处理

由于低版本php(php5以下)没有json_encode和json_decode

所以有下面函数实现

function json_encode($data) {  

        switch ($type = gettype($data)) {  

              case 'NULL':  

                 return 'null';  

             case 'boolean':  

                 return ($data ? 'true' : 'false');  

             case 'integer':  

             case 'double':  

             case 'float':  

                return $data;  

             case 'string':  

                 return '"' . addslashes($data) . '"';  

             case 'object':  

                 $data = get_object_vars($data);  

             case 'array':  

                  $output_index_count = 0;  

                 $output_indexed = array();  

                 $output_associative = array();  

                 foreach ($data as $key => $value) {  

                   $output_indexed[] = json_encode($value);  

                     $output_associative[] = json_encode($key) . ':' . json_encode($value);  

                    if ($output_index_count !== NULL && $output_index_count++ !== $key) {  

                        $output_index_count = NULL;  

                     }  

                }  

                 if ($output_index_count !== NULL) {  

                     return '[' . implode(',', $output_indexed) . ']';  

                 } else {  

                    return '{' . implode(',', $output_associative) . '}';  

                }  

              default:  

                 return ''; // Not supported  

         }  

     }  

function json_decode($json)  

 {  

     $comment = false;  

     $out = '$x=';  

   

     for ($i=0; $i<strlen($json); $i++)  

     {  

         if (!$comment)  

         {  

              if (($json[$i] == '{') || ($json[$i] == '['))       $out .= ' array(';  

            else if (($json[$i] == '}') || ($json[$i] == ']'))   $out .= ')';  

             else if ($json[$i] == ':')    $out .= '=>';  

            else                         $out .= $json[$i];            

        }  

         else $out .= $json[$i];  

         if ($json[$i] == '"' && $json[($i-1)]!="\\")    $comment = !$comment;  

     }  

     eval($out . ';');  

    return $x;  

  }  

 

转载于:https://www.cnblogs.com/blueskycc/p/6306971.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值