首頁  >  文章  >  後端開發  >  PHP json_解碼

PHP json_解碼

王林
王林原創
2024-08-29 13:09:30879瀏覽

在PHP中,內建函數json_decode()函數被定義為函數;顧名思義,它是一個用於轉換任何JSON 標準文字格式物件或將JSON 物件解碼為PHP 物件的函數,將JSON 字串作為參數,該函數對其進行轉換或解碼並傳回JSON 中的編碼值到正確的PHP 物件。 PHP 通常會提供一個函數,該函數接受通常表示 JavaScript 陣列或物件文字的 JSON 字串,用於將 JSON 格式的編碼字串轉換為特定的 PHP 物件資料類型。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

Json_decode() 在 PHP 中的工作

在本文中,json_decode() 是 PHP 提供的內建函數,用於將 JSON 字串轉換或解碼為 PHP 物件。 在 PHP 中,json_decode() 函數解碼 JSON 字串並將其轉換為 PHP 物件或資料類型。它將 JSON 資料作為參數並傳回相應的 PHP 表示。

在下面的部分中,我們將看到使用 json_decode() 函數的語法和範例:

文法:

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

參數:

Json_string:此參數為必填項,用於指定 JSON 編碼的字串以將其轉換為 PHP 物件

  • Asso_arr: 此參數用於指定布林值,如果該值設為true,則可以傳回關聯數組,如果設為false,則傳回物件。此參數是可選的,預設值為 false。
  • Recur_depth:此參數用於指定遞歸的深度,這也是一個可選參數,預設值為512。
  • Opt:此參數用於指定 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_解碼

在上面的程式中,我們可以看到當我們在HTML結構中編寫PHP程式碼時;我們從“”。它有一個陣列(5),這意味著數組中有 5 個元素。假設我們沒有設定任何內容或沒有傳遞 asso_arr 參數,例如「var_dump(json_decode($json_string));」那麼這個值將使我們能夠存取數組中物件的屬性,如下面的螢幕截圖所示。

PHP json_解碼

現在我們將看到下面的範例:無效的 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_解碼

在上面的程式中,我們可以看到當我們聲明了一個 json_string 並訪問了數組中的任何元素時;我們在任何程式語言中都使用數組[index]。類似地,我們用echo函數來編寫它,在上面的程式碼中,我們必須觀察到我們沒有在json_decode()函數中傳遞asso_arr參數,因此要存取該元素,我們必須編寫“echo $x[ 0]- >公司名稱;”如果我們將第二個參數設為“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_解碼

我們使用 json_last_error() 和 json_last_error_msg() 函數列印錯誤訊息,例如「4 個語法錯誤」。這些函數提供了與上例中編寫的 PHP 程式碼相關的錯誤的詳細資訊。如果我們不想使用錯誤函數列印任何錯誤訊息,則輸出將為“null”,表示轉換後的 PHP 物件或 JSON 資料本身無效。

PHP json_解碼

以上是PHP json_解碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP include_once下一篇:PHP include_once