English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例讲述了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(メールを送信する際には、#を@に置き換えてください。申し訳ありませんが、関連する証拠を提供し、一旦確認されると、このサイトは侵害された内容をすぐに削除します。)