English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHPのカスタム関数でJSONデータを整形する例

本文实例讲述了PHP自定义函数格式化json数据的方法。分享给大家供大家参考,具体如下:

<?php
  /**
   * Formats a JSON string for pretty printing
   *
   * @param string $json The JSON to make pretty
   * @param bool $html Insert nonbreaking spaces and <br />s for tabs and linebreaks
   * @return string The prettified output
   */
$arr = array("ret"=>0,"data"=>array('a' => 1, 'b' => "呐喊教程", 'c' => 3, 'd' => 4, 'e' => 5));
$json = json_encode($arr);
function _format_json($json, $html = false) {
    $tabcount = 0;
    $result = '';
    $inquote = false;
    $ignorenext = false;
    if ($html) {
      $tab = "   ";
      $newline = "<br/>";
    } else {
      $tab = "\t";
      $newline = "\n";
    }
    for($i = 0; $i < strlen($json); $i++) {
      $char = $json[$i];
      if ($ignorenext) {
        $result .= $char;
        $ignorenext = false;
      } else {
        switch($char) {
          case '{':
            $tabcount++;
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '}':
            $tabcount--;
            $result = trim($result) . $newline . str_repeat($tab, $tabcount) . $char;
            break;
          case ',':
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '"':
            $inquote = !$inquote;
            $result .= $char;
            break;
          case '\\':
            if ($inquote) $ignorenext = true;
            $result .= $char;
            break;
          default:
            $result .= $char;
        }
      }
    }
    return $result;
  }
echo _format_json($json);
/*
{
  "ret": 0,
  "data": {
    "a": 1,
    "b": "\u811a\u672c\u4e4b\u5bb6"
    "c": 3,
    "d": 4,
    "e": 5
  }
}
**/
?>

PS:ここでいくつかの非常に実用的なjsonオンラインツールを紹介します。

オンラインJSONコード検証、検証、最適化、フォーマット化ツール:
http://tools.jb51.net/code/json

JSONオンラインフォーマット化ツール:
http://tools.jb51.net/code/jsonformat

オンラインXML/JSON相互変換ツール:
http://tools.jb51.net/code/xmljson

jsonコードオンラインフォーマット化/最適化/圧縮/編集/変換ツール:
http://tools.jb51.net/code/jsoncodeformat

C言語スタイル/HTML/CSS/jsonコードフォーマット化と最適化ツール:
http://tools.jb51.net/code/ccode_html_css_json

PHPに関するさらに詳しい内容に興味を持つ読者は、このサイトの特集を参照してください:《PHPでjson形式データ操作技術集約》、《PHPでXMLファイル操作技術総覧》、《PHP基本文法入門教程》、《PHP配列(Array)操作技術全解》、《php文字列(string)使用法総覧》、《php+mysqlデータベース操作入門教程およびphp一般的なデータベース操作技術集約

この記事が皆様のPHPプログラムデザインに役立つことを願っています。

声明:この記事の内容はインターネットから収集され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、このサイトは所有権を持ちません。また、人間による編集は行われておらず、関連する法的責任も負いません。著作権侵害を疑う内容がある場合は、メールで notice#w までご連絡ください。3codebox.com(メールを送信する際には、#を@に置き換えてください。申し訳ありませんが、関連する証拠を提供し、一旦確認されると、このサイトは侵害された内容をすぐに削除します。)

おすすめ