ホームページ > バックエンド開発 > PHPチュートリアル > PHP 配列を JSON に解析する新しい方法

PHP 配列を JSON に解析する新しい方法

WBOY
リリース: 2024-05-01 15:48:02
オリジナル
396 人が閲覧しました

PHP 配列を JSON に変換するための 2 つの新しいメソッドがあります: JsonSerializable インターフェイス: オブジェクトが独自の JSON 表現を定義できるようにします。 JSONEncodeReplaceFlags: Unicode エスケープ シーケンスをエスケープしない JSON_UNESCAPED_UNICODE などの特殊文字の処理を制御します。

解析 PHP 数组转 JSON 的新方法

PHP 配列を JSON に解析する新しい方法

PHP で配列を JSON 文字列に変換するのは一般的なタスクです。従来の json_encode() 関数はこの機能を提供しますが、近年、追加の機能とパフォーマンス上の利点を提供する新しいメソッドが登場しています。

JsonSerializable インターフェイス

PHP 5.4 では、オブジェクトが独自の JSON 表現を定義できるようにする JsonSerializable インターフェイスが導入されました。このインターフェイスを実装するには、オブジェクトは、JSON に変換されるデータを返す jsonSerialize() メソッドを実装する必要があります。例:

class Person implements JsonSerializable {
    private $name;
    private $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function jsonSerialize() {
        return [
            'name' => $this->name,
            'age' => $this->age
        ];
    }
}
ログイン後にコピー

次のように、json_encode() 関数を使用して、Person オブジェクトを JSON に変換できます。 jsonSerialize( )

メソッドを使用して JSON 表現を生成し、変換プロセスをより詳細に制御できます。

JSONEncodeReplaceFlags

PHP 7.4 では、変換中の特殊文字の処理を制御できる JSONEncodeReplaceFlags

オプションが導入されました。このオプションは、次のように

json_encode() 関数とともに使用できます。

$person = new Person('John Doe', 30);
$json = json_encode($person);
ログイン後にコピー
この例では、JSON_UNESCAPED_UNICODE

フラグを使用してエスケープ シーケンスを保持し、次の JSON:

$array = ['a' => "\u00A0", 'b' => "\n"];
$json = json_encode($array, JSON_UNESCAPED_UNICODE);
ログイン後にコピー
実際のケース: RESTful API

RESTful API を構築する場合、クライアントのリクエストに応答するために、多くの場合、PHP 配列を JSON に変換する必要があります。 JsonSerializable

インターフェイスと

JSON_UNESCAPED_SLASHES フラグを使用した例を次に示します。

{
  "a": "\u00A0",
  "b": "\n"
}
ログイン後にコピー
このコードは、スラッシュをエスケープしない JSON 応答を生成します。 URL またはパスを含む応答。

以上がPHP 配列を JSON に解析する新しい方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート