首頁 > 後端開發 > PHP問題 > php 將json轉成陣列對象

php 將json轉成陣列對象

PHPz
發布: 2023-05-11 09:37:36
原創
476 人瀏覽過

在Web開發中,經常會涉及從前端頁面提交JSON格式的資料到後端,然後需要將這些資料轉換為PHP可以操作的陣列或物件形式。本文將介紹如何使用PHP將JSON資料轉換為陣列物件。

JSON是一種輕量級的資料交換格式,具有結構清晰、易於讀寫等特點。 PHP內建JSON處理函數,可以很方便地將JSON轉換為陣列或物件形式。

假設我們有以下JSON資料:

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}
登入後複製

使用PHP的json_decode()函數可以將其轉換為陣列物件。函數的用法如下:

array|object json_decode(string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]])
登入後複製

參數說明:

  • $json:需要解碼的JSON字串。
  • $assoc(可選):當此參數為真時,將傳回陣列形式,為假時傳回物件形式。預設為假。
  • $depth(可選):設定解析JSON資料的最大深度。預設為512,超出範圍將傳回null。
  • $options(可選):設定JSON解碼器的選項,如JSON_BIGINT_AS_STRING可以將大整數視為字串傳回。

程式碼範例:

$jsonStr = '{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }';

$array = json_decode($jsonStr, true);

print_r($array);
登入後複製

輸出結果:

Array
(
    [name] => Tom
    [age] => 20
    [address] => Array
        (
            [province] => Guangdong
            [city] => Guangzhou
        )

    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
        )
)
登入後複製

可以看到,json_decode()函數將JSON字串轉換為了PHP數組物件。

如果要將JSON資料轉換為PHP物件形式,可以去掉函數中的第二個參數或將其設為false。

除了將JSON資料轉換為陣列或物件形式,PHP還可以將陣列或物件形式的資料編碼為JSON字串。這可以使用PHP的json_encode()函數來實現。函數用法如下:

string json_encode(mixed $value[, int $options = 0[, int $depth = 512]])
登入後複製

參數說明:

  • $value:需要編碼為JSON字串的值。
  • $options(可選):設定JSON編碼器的選項,如JSON_PRETTY_PRINT可以讓編碼後的JSON字串更易於閱讀。
  • $depth(可選):設定編碼JSON資料的最大深度。預設為512,超出範圍將傳回空字串。

程式碼範例:

$array = array(
    'name' => 'Tom',
    'age' => 20,
    'address' => array(
        'province' => 'Guangdong',
        'city' => 'Guangzhou'
    ),
    'hobbies' => array(
        'reading',
        'swimming'
    )
);

$jsonStr = json_encode($array, JSON_PRETTY_PRINT);

echo $jsonStr;
登入後複製

輸出結果:

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}
登入後複製

在實際開發中,經常會使用AJAX技術向後端伺服器提交JSON數據,然後透過PHP將其轉換為可操作的形式。掌握以上JSON相關的PHP函數,能夠更方便地處理JSON資料。

以上是php 將json轉成陣列對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板