ホームページ >バックエンド開発 >PHPの問題 >PHP JSONで配列を変換する方法

PHP JSONで配列を変換する方法

PHPz
PHPzオリジナル
2023-04-27 09:06:36651ブラウズ

PHP では、JSON は構造化データを表すために使用できる一般的なデータ形式です。 JSON 形式のデータは、異なるシステム間で簡単に転送および解析できます。 PHP では、次のコードを使用して JSON 文字列を配列に変換できます。

$json_str = '{"name":"John","age":30,"city":"New York"}';
$arr = json_decode($json_str, true);

このうち、json_decode 関数は、JSON 形式の文字列を PHP 配列にデコードするために使用されます。最初のパラメータはデコードする JSON 文字列で、2 番目のパラメータは結果を連想配列にデコードするかどうかを示すブール値です。 true に設定した場合、結果は連想配列になります。false またはこのパラメーターを省略した場合、結果は単純なインデックス付き配列になります。

JSON 文字列を配列に変換することに加えて、PHP 配列を JSON 形式の文字列に変換することもできます。

$arr = array('name' => 'John', 'age' => 30, 'city' => 'New York');
$json_str = json_encode($arr);

ここでは、json_encode 関数を使用して PHP を変換します。配列は JSON 形式の文字列としてエンコードされ、文字列が返されます。 PHP 配列に UTF-8 以外でエンコードされた文字列が含まれている場合は、まずそれらを UTF-8 エンコードに変換してからエンコードする必要があることに注意してください。次のように、変換に mb_convert_encoding 関数を使用できます。

$arr = array('name' => '张三', 'age' => 30, 'city' => '北京');
$arr_utf8 = array_map(function($item){
    return mb_convert_encoding($item, 'UTF-8', 'GBK');
}, $arr);
$json_str = json_encode($arr_utf8, JSON_UNESCAPED_UNICODE);

ここでは、array_map 関数を使用して、配列内の各要素を反復処理し、UTF に変換します。 8エンコーディング。 2 番目のパラメータ JSON_UNESCAPED_UNICODE は、中国語の文字をエスケープせず、そのまま出力することを意味します。

PHP 配列を JSON 文字列に変換するだけでなく、オブジェクトを JSON 文字列に変換することもできます。この場合、オブジェクトをシリアル化する必要があります。これは通常、jsonSerialize メソッドを通じて実現されます:

class Person {
    public $name;
    public $age;
    public $city;
    
    public function __construct($name, $age, $city) {
        $this->name = $name;
        $this->age = $age;
        $this->city = $city;
    }
    
    public function jsonSerialize() {
        return [
            'name' => $this->name,
            'age' => $this->age,
            'city' => $this->city
        ];
    }
}

$person = new Person('John', 30, 'New York');
$json_str = json_encode($person);

ここで、Person クラスは jsonSerialize# を実装します。 ## メソッド。オブジェクトを連想配列に変換し、json_encode 関数を使用して JSON 形式の文字列にエンコードします。

つまり、JSON 形式は Web アプリケーションで広く使用されています。PHP には JSON 形式のサポートが組み込まれており、JSON 文字列を PHP 配列に簡単に変換したり、PHP 配列またはオブジェクトを JSON 形式に変換したりできます。

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

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