PHP 連想配列をJSONにする(json_encode)

目次

(確認環境:PHP 7)

json_encode関数

json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
  • json_encode関数は、指定した値をエンコードしてJSON形式にした文字列にします。
  • 1つめの引数にJSONに変換したい値を指定します。
  • 2つめの引数は定数を指定できます。定数の種類は公式ページを参照願います。日本語の場合JSON_UNESCAPED_UNICODEを指定します。
  • 2つめ以降の引数は省略可能です。

 

連想配列をJSONにする

<?php

$a = ['c1'=>'red',
		'c2'=>'yello',
		'c3'=>'blue'
	];

$b = json_encode($a);

var_dump($b);
//string(37) "{"c1":"red","c2":"yello","c3":"blue"}"

?>

3~6行目は、連想配列です。
8行目は、json_encode関数でエンコードしています。
10行目は、値を表示しています。JSON文字列になっています。

 

日本語の場合はJSON_UNESCAPED_UNICODEを使用

JSON_UNESCAPED_UNICODE

日本語がある場合、定義済み定数のJSON_UNESCAPED_UNICODEを使用します。

<?php

$a = ['c1'=>'赤',
		'c2'=>'黄',
		'c3'=>'青'
	];

$b = json_encode($a,JSON_UNESCAPED_UNICODE);

var_dump($b);
//string(34) "{"c1":"赤","c2":"黄","c3":"青"}"

?>

3~6行目は、連想配列です。
8行目は、json_encode関数でエンコードしています。2つめの引数は、JSON定数のJSON_UNESCAPED_UNICODEです。指定しない場合は、以下のようになります。
 "{"c1":"\u8d64","c2":"\u9ec4","c3":"\u9752"}"
10行目は、値を表示しています。JSON文字列になっています。

以下は、PHPマニュアルのjson_encodeのリンクです。
https://www.php.net/manual/ja/function.json-encode.php

関連の記事

PHP JSONを連想配列にする(json_decode)
PHP 変数から連想配列を作成するサンプル(compact)

△上に戻る