ホームページ  >  記事  >  バックエンド開発  >  PHP 用の JavaScript オブジェクト表記法 (JSON)

PHP 用の JavaScript オブジェクト表記法 (JSON)

伊谢尔伦
伊谢尔伦オリジナル
2016-11-21 17:52:12986ブラウズ

PHP 5.2.0 以降、JSON 拡張機能が組み込まれており、デフォルトで PHP にコンパイルされます。

JSON シリアル化インターフェイス JsonSerializable

JsonSerializable を実装するクラスは、json_encode() のときに JSON 表現をカスタマイズできます。

JsonSerializable::jsonSerialize - JSON にシリアル化する必要があるデータを指定します

例 #1 配列を返します

<?php
    class ArrayValue implements JsonSerializable {
        public function __construct(array $array) {
            $this->array = $array;
        }
        public function jsonSerialize() {
            return $this->array;
        }
    }
    $array = [1, 2, 3];
    echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

上記のルーチンは出力します:

[
    1,
    2,
    3
]

例 #2 連想配列を返します

<?php
    class ArrayValue implements JsonSerializable {
        public function __construct(array $array) {
            $this->array = $array;
        }
        public function jsonSerialize() {
            return $this->array;
        }
    }
    $array = [&#39;foo&#39; => &#39;bar&#39;, &#39;quux&#39; => &#39;baz&#39;];
    echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

上記のルーチン出力:

{
    "foo": "bar",
    "quux": "baz"
}

例 #3 整数を返します

<?php
    class IntegerValue implements JsonSerializable {
        public function __construct($number) {
            $this->number = (integer) $number;
        }
        public function jsonSerialize() {
            return $this->number;
        }
    }
    echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

上記のルーチンは出力します:

1

例 #4 文字列を返します

<?php
    class StringValue implements JsonSerializable {
        public function __construct($string) {
            $this->string = (string) $string;
        }
        public function jsonSerialize() {
            return $this->string;
        }
    }
    echo json_encode(new StringValue(&#39;Hello!&#39;), JSON_PRETTY_PRINT);
?>

上記のルーチンは出力します:

"Hello!"

JSON関数

json_decode — 文字列をJSON形式でエンコードします

json_encode — 変数をJSONでエンコードします

json_last_error_msg — 最後のjson_encode()またはjson_decode()呼び出しのエラー文字列を返します

json_last_error — 最後のエラーを返しますそれは起こりました


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。