ホームページ  >  記事  >  バックエンド開発  >  PHP json_decode

PHP json_decode

王林
王林オリジナル
2024-08-29 13:09:30975ブラウズ

PHP では、組み込み関数 json_decode() 関数が関数として定義されています。その名前が示すように、これは標準テキスト形式オブジェクトへの JSON の変換、または JSON オブジェクトの PHP オブジェクトへのデコードを行う関数であり、この関数は JSON 文字列をパラメータとして受け取り、それを変換またはデコードし、JSON にあったエンコードされた値を返します。適切な PHP オブジェクトに変換します。 PHP は通常、このエンコードされた文字列を JSON 形式で特定の PHP オブジェクト データ型に変換するための、JavaScript 配列またはオブジェクト リテラルを表す JSON 文字列を受け取る関数を提供します。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

PHP での Json_decode() の動作

この記事では、 json_decode() は、JSON 文字列を PHP オブジェクトに変換またはデコードするために PHP によって提供される組み込み関数です。 PHP では、json_decode() 関数は JSON 文字列をデコードし、それを PHP オブジェクトまたはデータ型に変換します。 JSON データをパラメータとして受け取り、対応する PHP 表現を返します。

以下のセクションでは、json_decode() 関数の構文と使用例を示します。

構文:

json_decode(json_string, asso_arr, recur_depth, opt<em>)</em>

パラメータ:

Json_string: このパラメータは、PHP オブジェクトに変換するために JSON エンコードされた文字列を指定するために必須です

  • Asso_arr: このパラメータは、値が true に設定されている場合は関連付けられた配列を返すことができるブール値を指定するために使用され、それ以外の場合は false に設定されている場合はオブジェクトを返します。このパラメータはオプションであり、デフォルト値は false です。
  • Recur_ Depth: このパラメータは再帰の深さを指定するために使用され、これはオプションのパラメータでもあり、デフォルト値は 512 です。
  • オプション: このパラメータは、JSON_OBJECT_AS_ARRAY、JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_SUBSTITUTE、JSON_THROW_ON_ERROR のビットマスクを指定するために使用され、これもオプションのパラメータです。

次に、HTML 構造で PHP の json_decode() を使用する簡単な例を見てみましょう。

PHP json_decode の例

以下に例を示します:

例 #1

コード:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '{
"CompayName": "Educba",
"Director": "Snehal",
"Employee": "Amardeep",
"address": {
"ColonyName": "Shivaji road",
"city": "Baramati",
"state": "Maharashtra",
"postalCode": "1234567"
},
"TelephoneNumbers": [
{ "type": "Work", "phonenumber": "9876543210" }
]
}';
var_dump(json_decode($json_string, true));
?>
</body>
</html>

出力:

PHP json_decode

上記のプログラムでは、HTML 構造で PHP コードを記述していることがわかります。 「<」から始めます。 ?php」と入力してコードを記述し、最後にPHPコードの終了タグは「?」となります。 >」。 array(5) があります。これは、配列内に 5 つの要素があることを意味します。何も設定していないか、「var_dump(json_decode($json_string));」などの asso_arr パラメーターを渡していないとします。この値により、以下のスクリーンショットに示すように、配列内のオブジェクトのプロパティにアクセスできるようになります。

PHP json_decode

次に、無効な JSON 形式とこの文字列を json_decode() 関数に渡す例と、それによって発生するエラーと出力の例を見てみましょう。また、これらの配列を出力する方法についても説明します。これらの配列には、以下のセクションの「echo」関数を使用してアクセスできます。

例 #2

以下のプログラムでは、echo 関数を使用して配列の要素にアクセスする方法を示します。

コード:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '[
{
"Companyname": "Educba",
"Director": "Snehal",
"phnumber": "89945954874"
},
{
"Companyname": "Google",
"Director": "Ann",
"phnumber": "9877564694"
}
]';
$x = json_decode($json_string);
echo $x[0]->Companyname;
?>
</body>
</html>

出力:

PHP json_decode

上記のプログラムでは、json_string を宣言し、配列内のいずれかの要素にアクセスしたときを確認できます。どのプログラミング言語でも array[index] を使用します。同様に、echo 関数を使用して記述します。上記のコードでは、json_decode() 関数で asso_arr パラメータを渡していないことを確認する必要があるため、要素にアクセスするには、「echo $x[」と記述する必要があります。 0]->会社名;" 2 番目のパラメータを「true」に設定した場合は、「echo $x[0][‘Companyname’];」と記述する必要があります。

例 #3

以下では、無効な JSON 文字列を関数に渡し、エラーも出力してみます。

コード:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '[
{
"Companyname": "Educba"
"Director": "Snehal"
"phnumber": "89945954874"
"Companyname": "Google"
"Director": "Ann"
"phnumber": "9877564694"
}
]';
$x = json_decode($json_string);
echo $x[0]->Companyname;
echo json_last_error();
echo json_last_error_msg();
?>
</body>
</html>

出力:

PHP json_decode

json_last_error() 関数と json_last_error_msg() 関数を使用して、「4 つの構文エラー」などのエラー情報を出力します。これらの関数は、上記の例で記述された PHP コードに関連するエラーの詳細を提供します。エラー関数を使用してエラー メッセージを出力したくない場合、出力は「null」となり、変換された PHP オブジェクトまたは JSON データ自体が無効であることを示します。

PHP json_decode

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

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