zoukankan      html  css  js  c++  java
  • 封装json格式化函数

    <?php
    function indent ($json) {
      $result = '';
      $pos = 0;
      $strLen = strlen($json);
      $indentStr = ' ';
      $newLine = "
    ";
      $prevChar = '';
      $outOfQuotes = true;
    
      for ($i=0; $i<=$strLen; $i++) {
          // 抓取字符串中的下一个字符
          $char = substr($json, $i, 1);
          // Are we inside a quoted string?
          if ($char == '"' && $prevChar != '\') {
             $outOfQuotes = !$outOfQuotes;
             // 如果这个字符是元素的结尾,输出新行并缩进下一行
          } else if(($char == '}' || $char == ']') && $outOfQuotes) {
             $result .= $newLine;
             $pos --;
            for ($j=0; $j<$pos; $j++) {
              $result .= $indentStr;
            }
          }
          //将字符添加到结果字符串中
          $result .= $char;
          // 如果最后一个字符是元素的开头,输出新行并缩进下一行
          if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
            $result .= $newLine;
            if ($char == '{' || $char == '[') {
               $pos ++;
            }
            for ($j = 0; $j < $pos; $j++) {
              $result .= $indentStr;
            }
          }
          $prevChar = $char;
      }
      return $result;
    }
    
    $arr = array(  
        'status' => true,  
        'errMsg' => '',  
        'member' =>array(  
            array(  
                'name' => '李逍遥',  
                'gender' => '男'  
            ),  
            array(  
                'name' => '赵灵儿',  
                'gender' => '女'  
            )  
        )  
    ); 
    $str = json_encode($arr);
    $json = indent($str);
    echo $json;
  • 相关阅读:
    导航
    占位
    django(一)
    进程与线程
    网络编程
    反射 单例模式
    面向对象及命名空间
    logging,包
    模块(二)os hashlib
    装饰器&递归
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/9530663.html
Copyright © 2011-2022 走看看