ホームページ  >  記事  >  バックエンド開発  >  PHPはjsonを配列オブジェクトに変換します

PHPはjsonを配列オブジェクトに変換します

PHPz
PHPzオリジナル
2023-05-11 09:26:36488ブラウズ

Web 開発では、JSON (JavaScript Object Notation) 形式がデータ交換形式として広く使用されています。一般的なサーバーサイド言語として、PHP は JSON 形式の文字列を配列オブジェクトに変換することを当然サポートしています。この記事では、PHPを使用してJSONを配列オブジェクトに変換する方法を紹介します。

  1. json_decode 関数を使用する

PHP の組み込み json_decode 関数を使用すると、JSON 形式の文字列を PHP 配列オブジェクトに変換できます。以下は基本的な使用例です:

<?php
$json_str = '{"name": "张三", "age": 20}';
$array_obj = json_decode($json_str);
print_r($array_obj);
?>

上記のコードでは、まず JSON 形式の文字列 $json_str を定義します。これには name という名前の文字列属性が含まれており、name は age の整数属性です。次に、 json_decode 関数を使用して文字列を配列オブジェクト $array_obj に変換し、最後に print_r 関数を使用して配列オブジェクトを出力します。スクリプトを実行すると得られる出力は次のとおりです。

stdClass Object
(
    [name] => 张三
    [age] => 20
)

ご覧のとおり、 json_decode 関数は JSON 形式の文字列を配列オブジェクトに正常に変換します。

  1. 2 番目のパラメータを使用して、戻り結果のタイプを指定します

デフォルトでは、json_decode 関数は、PHP に組み込まれている標準クラスである stdClass オブジェクトを返します。任意のデータ型を表します。 JSON 文字列を連想配列に変換する場合 (つまり、プロパティ名をキー名として使用する場合)、以下に示すように 2 番目のパラメーターを true に設定できます。

<?php
$json_str = '{"name": "张三", "age": 20}';
$array_obj = json_decode($json_str, true);
print_r($array_obj);
?>

ここで 2 番目のパラメーターが true に設定されている場合、 json_decode 関数は属性名をキー名として使用して連想配列を返します。スクリプトを実行すると得られる出力は次のとおりです。

Array
(
    [name] => 张三
    [age] => 20
)

ご覧のとおり、json_decode 関数は連想配列を返しますが、これは前の出力例とは異なります。

  1. 変換失敗の処理

JSON 形式の文字列を配列オブジェクトに変換できない場合、json_decode 関数は null を返します。したがって、コード内で変換失敗のケースを処理する必要があります。以下に例を示します。

<?php
$json_str = 'invalid json string';
$array_obj = json_decode($json_str);
if(is_null($array_obj)) {
    echo('JSON转换失败');
} else {
    print_r($array_obj);
}
?>

上記のコードでは、無効な JSON 文字列を変数 $json_str に代入し、json_decode 関数を使用して文字列を変換します。文字列は配列オブジェクトに変換できないため、json_decode 関数は null を返します。そこで、戻り結果がnullかどうかをis_null関数で判定し、nullの場合は「JSON変換に失敗しました」を出力し、そうでない場合は変換後の配列オブジェクトを出力します。このスクリプトを実行すると得られる出力は次のとおりです。

JSON转换失败

結論

PHP では、json_decode 関数を使用して JSON 形式の文字列を配列オブジェクトに変換することは、非常に基本的な操作です。この記事では、json_decode 関数の基本的な使い方と、よくあるヒントや注意事項を紹介します。これらの知識ポイントを学ぶことで、読者は PHP を使用して JSON 形式のデータを処理することにさらに習熟できるようになります。

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

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