まず前提として、DBから日本語文字列を含むデータを取得し、JSON形式で返すというAPIの話だ。
また、このAPIは外部サーバーから使えるようにするものとする。
<?php
// これが無いと外部サーバーからAPIを利用できない
header("Access-Control-Allow-Origin: *");
/* APIの処理
...
*/
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $json;
今回のテーマは、json_encode関数の使い方。
引数にエンコードの際のオプションを「|(パイプ)」区切りで指定できるのだが、まずJSON_UNESCAPED_UNICODEが無いと日本語が全て「\uXXXX」の形式に変換されてしまう。
そして、JSON_PRETTY_PRINTを付けることで、出力するJSONを綺麗に整形してくれる。
先に述べた前提条件の上でAPIを作成する場合は、この二つのオプションは必須となるだろう。