首頁 >後端開發 >PHP問題 >如何將json物件轉換為PHP數組

如何將json物件轉換為PHP數組

PHPz
PHPz原創
2023-04-17 11:25:03553瀏覽

json 是一種輕量級的資料交換格式,越來越流行了。 PHP 是一種優秀的伺服器端程式語言,非常適合 Web 開發。因此,將 json 物件轉換為 PHP 陣列是一項非常有用的技能。在本文中,我們將學習如何將 json 物件轉換為 PHP 陣列。

  1. json_decode() 函數

PHP 中的 json_decode() 函數是將 json 格式的字串轉換為 PHP 變數(陣列或物件)的主要方式。其語法如下:

mixed json_decode(string $json[, bool $assoc = FALSE[, int $depth = 512[, int $options = 0]]])

參數說明:

  • json:json 字串。
  • assoc:一個布林值,指示是否將 json 物件轉換為關聯數組。
  • depth:整數型,指示最大深度。預設情況下,最大深度為 512,可以使用常數 JSON_DEPTH 定義。
  • options:選項,用於更細緻地控制解碼過程。可以使用下列常數的組合:
##JSON_BIGINT_AS_STRING 的整數轉換為字串。 此選項將忽略非法 UTF-8 字元。 JSON_INVALID_UTF8_SUBSTITUTE 此選項將使用 Unicode 取代字元來取代非法 UTF-8 字元。
常數 描述

在PHP 5.4.0 及更高版本中可用。將大於 PHP_INT_MAX
JSON_INVALID_UTF8_IGNOREJSON_INVALID_UTF8_SUBSTITUTE 在 PHP 5.3.3 及更高版本中可用。
JSON_INVALID_UTF8_IGNORE

JSON_OBJECT_AS_ARRAY

#將 json 物件轉換為關聯陣列。

  1. JSON_THROW_ON_ERROR
  2. 在 PHP 7.3.0 及更高版本中可用。此常數用於自動拋出異常,而不是返回
FALSE
  • #範例:
  • #以下是JSON 字串:
    {
      "name": "John Doe",
      "age": 30,
      "city": "New York"
    }
  • 使用
json_decode ()
    函數將其轉換為關聯數組:
  1. $json = '{"name":"John Doe","age":30,"city":"New York"}';
    $arr = json_decode($json, true);
    
    print_r($arr);
  2. #輸出:
Array
(
    [name] => John Doe
    [age] => 30
    [city] => New York
)

json_decode() 函數的使用注意事項

  1. #json_decode() 只能處理UTF-8 編碼的資料。
json_decode() 只支援在 PHP 中使用的資料類型,例如字串、數字、陣列和物件。

json_decode() 不支援特殊資料類型,如資源和回呼函數。 ######json_decode() 只支援雙引號的 json 字串。請勿使用單引號或不帶引號的鍵名。 ######在給定 json_encode() 函數時,請使用常數 ###JSON_UNESCAPED_UNICODE###,確保轉義非 ASCII 字元。 ############範例#########以下是將json 字串轉換為PHP 陣列的完整範例:###
<?php
// 1. 定义 json 格式的字符串
$json = &#39;{"name":"John Doe","age":30,"city":"New York"}&#39;;

// 2. 将 json 格式的字符串转换为 PHP 数组
$arr = json_decode($json, true);

// 3. 输出转换后的数组
print_r($arr);
?>
###輸出:###
Array
(
    [name] => John Doe
    [age] => 30
    [city] => New York
)
# #####結論#########如上所述,我們可以使用json_decode() 函數將json 物件轉換為PHP 陣列。此技術在 Web 開發中非常有用,可以幫助我們解析來自 AJAX 呼叫的 JSON 資料。 ###

以上是如何將json物件轉換為PHP數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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