zoukankan      html  css  js  c++  java
  • 低版本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;  
    
      }  
  • 相关阅读:
    Objective C
    MySQL 存储过程,游标,临时表创建
    List connected users–similar to task manager
    游戏视频编辑
    游戏音频编辑
    UE4 AI BehaviorTree 动画播放完成通知机制
    UE4 AI BehaviorTree 各个节点执行顺序总结
    Holographic Remoting
    Hololens 手势事件执行顺序
    Hololens 硬件细节 Hardware Detail
  • 原文地址:https://www.cnblogs.com/blueskycc/p/6306971.html
Copyright © 2011-2022 走看看