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;  
    
      }  
  • 相关阅读:
    LR的九种参数取值方法
    性能测试过程总结
    LR 中webservice三种使用方法
    LR解决保存后后台为乱码问题
    LoadRunner 实现监控Tomcat
    LR12 WebTour注册
    LoadRunner12安装说明以及问题解决
    使用Python访问网络数据 python network-data 第六章
    使用Python访问网络数据 python network-data 第五章
    反射调用私有方法
  • 原文地址:https://www.cnblogs.com/blueskycc/p/6306971.html
Copyright © 2011-2022 走看看