Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PHPにおけるJSONエンコード整形

More than 3 years have passed since last update.

PHPでJSON形式にエンコードするには、

json_encode()
http://php.net/manual/ja/function.json-encode.php

が用いられる。
引数に指定した値をJSON形式の文字列として返す関数だ。
以下のように使うのだが、

$a = [
    'name'    => '山田太郎',
    'age'     => 20,
    'address' => '東京都新宿区'
];

echo json_encode($a);

// {"name":"\u5c71\u7530\u592a\u90ce","age":20,"address":"\u6771\u4eac\u90fd\u65b0\u5bbf\u533a"}

文字列がUnicodeエスケープシーケンスに変換されてしまう。
これでも実際問題ないのでいいのだが、いかんせん普通の人間は読めない。
そこでオプション追加。

echo json_encode($a, JSON_UNESCAPED_UNICODE);

// {“name":"山田太郎","age":20,"address":"東京都新宿区"}

これなら読める。
しかしデータが大きくなってくると1行JSONは読みづらい。
なので、さらにオプション追加。

echo json_encode($a, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);

// {
//     "name": "山田太郎",
//     "age": 20,
//     "address": "東京都新宿区"
// }

いい感じ。構造がわかりやすくなった。
他にもオプションはたくさんある。

http://php.net/manual/ja/json.constants.php

開発時だけ出力を読みやすく整形するのが便利だと思います:thumbsup_tone1:

kiyc
Webエンジニア。インフラもバックエンドもフロントエンドも書いています。 普段書いているのはPHP(Laravel)、JavaScript(Vue.js)です。
prime-order
組織と業務に変革をもたらす新しいカタチのシステム開発サービス
https://prime-order.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away