phpのjson_encode()とjson_decode()関数の詳細について解説します。
json_encode()関数は、PHPの変数をJSON形式の文字列に変換します。引数として変換したいPHP変数を受け取ります。成功すると、JSON形式の文字列が返されますが、失敗した場合はfalseが返ります。
以下是一些常見的例子和用法:
- 配列をJSON文字列に変換する。
$data = array('name' => 'John', 'age' => 30);
$jsonString = json_encode($data);
echo $jsonString;
結果は、「name」が「John」で、「age」が30です。
- JSON文字列へのオブジェクトの変換:
class Person {
public $name;
public $age;
}
$person = new Person();
$person->name = 'John';
$person->age = 30;
$jsonString = json_encode($person);
echo $jsonString;
結果は次のようになります:{“name”:”John”,”age”:30}
- 2番目のパラメーターでエンコードする深さを指定できます。
$data = array('name' => 'John', 'age' => 30);
$jsonString = json_encode($data, JSON_PRETTY_PRINT);
echo $jsonString;
結果は次の通りです:
{
"name": "John",
"age": 30
}
json_decode()関数は、JSON形式の文字列をPHPの変数に変換します。引数として変換するJSON文字列を受け取ります。成功した場合は、PHPの変数を返します。失敗した場合は、nullを返します。
以下是一些常見的用法示例:
- JSON文字列を配列に変換する:
$jsonString = '{"name":"John","age":30}';
$data = json_decode($jsonString, true);
print_r($data);
結果は、Array([name] => John [age] => 30)です。
- JSON文字列をオブジェクトに変換する:
$jsonString = '{"name":"John","age":30}';
$data = json_decode($jsonString);
echo $data->name;
echo $data->age;
出力結果は、ジョン30歳です。
- 第二引数を使用して、返されるデータタイプを指定できます。
$jsonString = '{"name":"John","age":30}';
$data = json_decode($jsonString, false, 512, JSON_BIGINT_AS_STRING);
print_r($data);
結果は、stdClassオブジェクト([名前] => ジョン[年齢] => 30)です。
json_decode()関数のデフォルトではstdClassオブジェクトが返されることに注意が必要であり、配列を返したい場合は、第二引数をtrueに設定する必要があります。
その他、json_decode()関数にはいくつかのオプションがあります。たとえば、第三引数は最大デコード深度を指定するために使用されますし、第四引数は解読時のオプションを指定するために使用されます。詳細はPHP公式ドキュメントを参照してください。