Search
  1. 定義済みの定数
  2. json_decode PHP5~〔JSON文字列をデコードする〕
  3. json_encode PHP5~〔値をJSON形式に変換する〕
  4. json_last_error ※PHP v5.3.0+〔直近に発生したエラーを返す〕

定義済みの定数

unknown

この関数の拡張モジュールがPHP組み込みでコンパイルされているか、実行時に動的に読み込まれている場合のみ使用することができます。

下記の定数は、json_last_error()が返すエラーの型を表します(PHP v5.3.0~)。

JSONエラーコード
定数意味
JSON_ERROR_NONEintegerエラーなし。
JSON_ERROR_DEPTHintegerスタックの深さが最大値を超えています。
JSON_ERROR_CTRL_CHARinteger制御文字エラー。エンコーディングが違う可能性大です。
JSON_ERROR_SYNTAXinteger構文エラー。

json_decode PHP5~
JSON文字列をデコードする

unknown

mixed json_decode ( string $json[, bool $assoc[, int $depth ]] )

JSONエンコードされた文字列を受け取り、PHPの変数に変換して返します。

第1引数jsonには、デコードするJSON文字列を指定します。

オプションの第2引数assocTRUEを指定すると、返り値のオブジェクトが連想配列形式になります。 デフォルトはFALSEです。

JSONエンコードされたデータの入れ子の深さが127を超えると、ファイルを返します。

<?
###### 返り値
$json '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
/*
object(stdClass)#1 (5) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
  ["d"]=>
  int(4)
  ["e"]=>
  int(5)
}
*/

# 返り値のオブジェクトを連想配列形式にする
var_dump(json_decode($jsontrue));
/*
array(5) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
  ["d"]=>
  int(4)
  ["e"]=>
  int(5)
}
*/

###### JSON文字列を変数$objに格納
$json='{"foo-bar": 12345}';

$obj=json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>

json_encode PHP5~
値をJSON形式に変換する

unknown

string json_encode ( mixed $値[, int $オプション ] )

指定したをJSON形式の文字列にエンコードして返します。

第1引数には、エンコードする値を指定します。 リソース型以外の型を指定することができます。 この関数は、UTF-8でエンコードされたデータのみで動作します。

オプションの第2引数オプションは、PHP_JSON_HEX_QUOT、PHP_JSON_HEX_TAG、PHP_JSON_HEX_AMP、PHP_JSON_HEX_APOSからなるビットマスクを指定します。 デフォルトは0です。

<?
$arr =array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>

json_last_error ※PHP v5.3.0+
直近に発生したエラーを返す

unknown

int json_last_error ( void )

直近のJSONパース処理中にエラーが発生した場合は、そのエラーを整数値(定数のいずれか)で返します。

<?
// 正しい json 文字列
$json[] = '{"Organization": "PHP Documentation Team"}';

// 間違った json 文字列で、構文エラーとなります
// ここでは、クォートに " ではなく ' を使用しています
$json[] = "{'Organization': 'PHP Documentation Team'}";

foreach($json as $string){
    echo 'Decoding: ' $string;
    json_decode($string);
    switch(json_last_error()){
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
    }
    echo PHP_EOL;
}
/*
Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON
*/
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women