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

PHP の配列とオブジェクトを JSON 形式に変換する方法

PHPz
リリース: 2023-04-23 09:31:34
オリジナル
628 人が閲覧しました

Web 開発のプロセスでは、PHP のデータを JSON 形式に変換して送信する必要があることがよくあります。 PHP には、JSON 形式に変換する必要がある 2 つの一般的なデータ型、つまり配列とオブジェクトがあります。この記事では、PHPの配列やオブジェクトをJSON形式に変換する方法、およびJSON形式を配列やオブジェクトに変換する方法を紹介します。

1. PHP 配列を JSON 形式に変換する

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

PHP では、json_encode() 関数を使用して配列を JSON 形式に変換できます。 JSON形式。この関数は、JSON 形式に変換する必要がある配列である 1 つのパラメーターを受け取ります。以下に例を示します。

$array = array('name' => '张三', 'age' => 20);
$json = json_encode($array);
echo $json;
ログイン後にコピー

実行後の出力結果は次のとおりです。

{"name":"张三","age":20}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記のコードは、名前と年齢を含む配列を JSON 形式に変換します。

デフォルトでは、 json_encode() 関数は配列内のキー名を JSON の属性名に変換します。キー名を JSON 形式で保存する必要がある場合は、この関数を使用するときに特別なパラメーター JSON_FORCE_OBJECT を渡すことができます。例:

$array = array('name' => '张三', 'age' => 20);
$json = json_encode($array, JSON_FORCE_OBJECT);
echo $json;
ログイン後にコピー

実行後の出力結果は次のようになります:

{"name":"张三","age":20}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、ここでの結果は前の例と同じです。

2. foreach を使用して配列をループする

PHP 配列を JSON 形式に変換する別の方法は、foreach を使用して配列をループすることです。例:

$array = array('name' => '张三', 'age' => 20);
$json = '{';
foreach ($array as $key => $value) {
    $json .= '"' . $key . '":"' . $value . '",';
}
$json = substr($json, 0, -1);
$json .= '}';
echo $json;
ログイン後にコピー

出力結果は次のとおりです:

{"name":"张三","age":"20"}
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、このコードは配列を JSON 形式に変換します。ただし、この方法では文字列を手動で結合する必要があり、面倒です。

2. PHP オブジェクトを JSON 形式に変換する

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

配列と同様に、PHP でも json_encode() 関数を使用できます。変換する オブジェクトは JSON 形式に変換されます。以下に例を示します。

class Student {
    public $name;
    public $age;
}
$student = new Student();
$student -> name = "张三";
$student -> age = 20;
$json = json_encode($student);
echo $json;
ログイン後にコピー

コード変換後の出力結果は次のとおりです。

{"name":"张三","age":20}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、このコードは Student タイプのオブジェクトを JSON 形式に変換します。

オブジェクト タイプ情報を JSON 形式で保存する必要がある場合は、 json_encode() 関数を使用するときに特別なパラメータ JSON_UNESCAPED_UNICODE を渡すことができます。例:

class Student {
    public $name;
    public $age;
}
$student = new Student();
$student -> name = "张三";
$student -> age = 20;
$json = json_encode($student, JSON_UNESCAPED_UNICODE);
echo $json;
ログイン後にコピー

実行後の出力結果は:

{"name":"张三","age":20,"__className":"Student"}
ログイン後にコピー

2. json_encode() 関数と配列トラバーサルを使用します

は配列と同様であり、次のことができます。 PHP でも使用されます。 foreach を使用してオブジェクトのプロパティをループします。例:

class Student {
    public $name;
    public $age;
}
$student = new Student();
$student -> name = "张三";
$student -> age = 20;
$json = '{';
foreach ($student as $key => $value) {
    $json .= '"' . $key . '":"' . $value . '",';
}
$json = substr($json, 0, -1);
$json .= '}';
echo $json;
ログイン後にコピー

実行後の出力結果は次のようになります:

{"name":"张三","age":"20"}
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、このコードはオブジェクトを JSON 形式にも変換します。ただし、この方法では文字列を手動で結合する必要もあり、より面倒です。

3. JSON を PHP 配列またはオブジェクトに変換する

Web 開発を行う場合、フロントエンド ページから JSON 形式のデータを取得し、配列またはオブジェクトに変換する必要があることがよくあります。 PHPでは以降の処理を行います。 PHP で JSON を配列またはオブジェクトに変換する方法は次のとおりです。

1. json_decode() 関数を使用して JSON を配列に変換します

json_decode() 関数を使用して、JSON 形式のデータを PHP 配列に変換できます。この関数には 2 つのパラメータがあり、1 つ目は変換する必要がある JSON 文字列で、2 つ目は配列を PHP オブジェクトに変換するかどうかを指定するために使用されるブール値です。デフォルトは false、つまり配列に変換されます。例:

$json = '{"name":"张三","age":20}';
$array = json_decode($json, true);
var_dump($array);
ログイン後にコピー

実行後の出力結果は次のようになります。

array(2) {
  ["name"]=>
  string(6) "张三"
  ["age"]=>
  int(20)
}
ログイン後にコピー

ご覧のとおり、この関数は JSON 形式のデータを PHP 配列に変換して結果を出力します。

2. json_decode() 関数を使用して JSON をオブジェクトに変換します

json_decode() 関数を使用すると、配列への変換に加えて、JSON 形式のデータを PHP に変換できます物体。例:

$json = '{"name":"张三","age":20}';
$obj = json_decode($json);
var_dump($obj);
ログイン後にコピー

実行後の出力結果は次のようになります。

class stdClass#1 (2) {
  public $name =>
  string(6) "张三"
  public $age =>
  int(20)
}
ログイン後にコピー

ご覧のとおり、この関数は JSON 形式のデータを PHP オブジェクトに変換して出力します。

要約すると、PHP の配列やオブジェクトを JSON 形式に変換するにはさまざまな方法があり、実際の状況に応じて使用することができます。同時に、フロントエンドページからJSON形式のデータを取得し、PHPで配列やオブジェクトに変換する際に利用できる対応関数も用意されています。これらの機能を正しく使いこなすことは、Webアプリケーション開発において非常に重要です。

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

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