web-dev-qa-db-ja.com

PHP "pretty print" json_encode

可能性のある複製:
PHPを使用したプリティプリントJSON

JSONファイルを作成するスクリプトに取り組んでいます。現在、配列をJSON出力にエンコードするためにjson_encode(PHP 5.2.x)を使用しています。次に、返された値をファイルに出力して保存します。問題は、クライアントが読みやすいようにこれらのJSONファイルを開きたいということです。そこで、改行を追加し、JSON出力を「きれいに印刷」したいと思います。これを行う方法に関するアイデアはありますか?私が見ることができる私の唯一の他の選択肢は、json_encodeをまったく使用せず、ファイルの内容を手動で書き込み、各行に独自の改行を追加することです。

私が得るものは次のとおりです。

{"product_name":"prod1","val1":1,"val2":8}

私が欲しいものは次のとおりです。

{
  "product_name":"prod1",
  "val1":1,
  "val2":8
}

すべてのコンマをコマンドの後に\ nを付けて置き換えることもできると思います。括弧についても同じです...

131
Brian

PHPには、5.4.0(リリース日2012年3月1日)以降、JSON_PRETTY_PRINTオプションがあります。

これは仕事をするはずです:

$json = json_decode($string);
echo json_encode($json, JSON_PRETTY_PRINT);

http://www.php.net/manual/en/function.json-encode.php を参照してください

注:書式設定を保持するためにHTMLで印刷する場合は、「<pre>」を前後に「</ pre>」をエコーすることを忘れないでください;)

310
petrkotek

うーん$array = json_decode($json, true);はあなたの文字列をprint_r($array, true);でうまく印刷しやすい配列にします

しかし、あなたが本当にあなたのjsonをきれいにしたいなら... チェックアウト

11
sg3s

JSONをきれいにする関数を次に示します。 pretty_json

4
Cam Tullos

PHP 5.3では、この関数を使用できます。この関数は、クラスに埋め込むか、手続き型で使用できます。

http://svn.kd2.org/svn/misc/libs/tools/json_readable_encode.php

3
bohwaz