ホームページ >バックエンド開発 >PHPの問題 >PHPオブジェクト配列をJSON文字列配列に変換する方法

PHPオブジェクト配列をJSON文字列配列に変換する方法

PHPz
PHPzオリジナル
2023-04-19 14:11:06444ブラウズ

現代の Web 開発では、JSON (JavaScript Object Notation) 形式のデータを使用する JavaScript ベースのフロントエンド プログラムが通常の選択肢になっています。 PHP は一般的なサーバー側プログラミング言語です。多くの場合、フロントエンド呼び出しを容易にするために、サーバー側で PHP オブジェクトまたは配列を JSON 形式の文字列に変換する必要があります。この記事では、PHP でオブジェクトの配列を JSON 文字列配列に変換する方法を説明します。

  1. json_encode() 関数を使用する

json_encode() 関数は PHP に組み込まれており、次のように PHP 配列とオブジェクトを JSON 形式の文字列に変換できます。表示:

<?php
$array = array(&#39;name&#39; => '张三', 'age' => 18, 'gender' => 'male');
echo json_encode($array);
?>

実行結果:

{"name":"张三","age":18,"gender":"male"}

この例では、PHP 配列が json_encode() 関数に渡されると、エンコードされた JSON 形式の文字列が返されることがわかります。ここで注意してください: json_encode() 関数は UTF-8 エンコード形式のみをサポートします。文字列で使用されているエンコード形式が UTF-8 でない場合、エラーが発生します。したがって、json_encode() 関数を使用する前に、変換する必要がある配列またはオブジェクトが UTF-8 形式に変換されていることを確認してください。

  1. オブジェクト配列の JSON 形式

オブジェクト配列を JSON 文字列配列に変換する必要がある場合は、オブジェクトを配列に変換し、json_encode を使用する必要があります。 () 処理用の関数です。たとえば、学生情報を表すオブジェクト配列を JSON 形式の文字列配列に変換する必要があります:

<?php
class Student{
    public $name;
    public $age;
    public $gender;
}
$student1 = new Student();
$student1->name = '张三';
$student1->age = 18;
$student1->gender = 'male';

$student2 = new Student();
$student2->name = '李四';
$student2->age = 19;
$student2->gender = 'female';

$students = array();
array_push($students,$student1,$student2);

$students_arr = array();
foreach($students as $student){
    $obj = get_object_vars($student);
    array_push($students_arr,$obj);
}

echo json_encode($students_arr);
?>

実行結果:

[{"name":"张三","age":18,"gender":"male"},{"name":"李四","age":19,"gender":"female"}]

上記の例では、Student を表すことができる配列を作成しました。クラスを使用して学生情報を取得し、配列を使用して複数の Student オブジェクトを格納します。 Student オブジェクトを配列に変換する場合は、get_object_vars() 関数が使用されます。この関数はオブジェクトを連想配列に変換し、オブジェクトを配列のように扱えるようにします。最後に、配列を json_encode() 関数に渡し、結果を出力します。

同時に、理解を助けるために、次の図に示すように、上記の例をより直感的な形式に変換することもできます。

JSON_PRETTY_PRINT オプション

    上記の 2 つの例を通じて、PHP オブジェクトまたは配列を JSON 形式の文字列配列に変換する方法を学習しました。ただし、これらの JSON 形式の文字列配列は、一見すると少し読みにくいように見えます。 JSON データ形式を美しくするために、以下に示すように、json_encode() 関数の 2 番目のパラメーターである JSON_PRETTY_PRINT 選択を使用できます。
  1. <?php
    $array = array(&#39;name&#39; => '张三', 'age' => 18, 'gender' => 'male');
    echo json_encode($array,JSON_PRETTY_PRINT);
    ?>
  2. 実行結果:
{
    "name": "张三",
    "age": 18,
    "gender": "male"
}

これが起こります。 JSON_PRETTY_PRINT オプションを使用すると、出力結果がより明確になり、読みやすくなります。

この記事では、PHP でオブジェクトの配列を JSON 文字列配列に変換する方法を紹介しました。これはフロントエンドとバックエンドの対話における重要なステップであり、フロントエンドの JSON 解析ツールと組み合わせることで、データを各 Web サイトで必要な形式に簡単に変換できます。

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

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