在 PHP 中使用JSON

2023-04-17 11:56 更新

本教程將會(huì)教我們?nèi)绾问褂?PHP 編程語(yǔ)言編碼和解碼 JSON 對(duì)象。讓我們先來準(zhǔn)備環(huán)境以便針對(duì) JSON 進(jìn)行 PHP 編程。

環(huán)境

從 PHP 5.2.0 開始默認(rèn)捆綁了 JSON 擴(kuò)展并被編譯到 PHP 中。

JSON 函數(shù)

函數(shù) 程序庫(kù)
json_encode 返回一個(gè)值的 JSON 表示形式。
json_decode 解碼為一個(gè) JSON 字符串。
json_last_error 返回最后一次出現(xiàn)的錯(cuò)誤。

使用 PHP 編碼 JSON(json_encode)

PHP 的 json_encode() 函數(shù)用于在 PHP 中編碼 JSON。編碼成功時(shí)這個(gè)函數(shù)返回給定值的 JSON 表示形式,失敗則返回 FALSE。

語(yǔ)法:

string json_encode ( $value [, $options = 0 ] )

參數(shù):

  • value: 要編碼的值。這個(gè)函數(shù)只能用于 UTF-8 編碼的數(shù)據(jù)。
  • options: 這個(gè)可選值是一個(gè)由 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT 組成的位掩碼。

示例:

下面的例子展示了如何使用 PHP 將一個(gè)數(shù)組轉(zhuǎn)換為 JSON:

<?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

執(zhí)行時(shí)會(huì)生成如下結(jié)果:

{"a":1,"b":2,"c":3,"d":4,"e":5}

下面的例子展示了 PHP 對(duì)象也可以被轉(zhuǎn)換為 JSON:

<?php
    class Emp {
        public $name = "";
        public $hobbies  = "";
        public $birthdate = "";
    }
    $e = new Emp();
    $e->name = "sachin";
    $e->hobbies  = "sports";
    $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

    echo json_encode($e);
?>

執(zhí)行時(shí)會(huì)生成如下所示結(jié)果:

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

使用 PHP 解碼 JSON(json_decode)

PHP 的 json-decode() 函數(shù)用于在 PHP 中解碼 JSON。這個(gè)函數(shù)返回從 JSON 解碼到適當(dāng) PHP 類型的值。

語(yǔ)法:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

參數(shù):

  • __json_string:__ 編碼的字符串,必須是 UTF-8 編碼的數(shù)據(jù)。
  • assoc: 它是一個(gè)布爾類型的參數(shù),當(dāng)設(shè)置為 TRUE 時(shí),返回的對(duì)象將會(huì)被轉(zhuǎn)換為關(guān)聯(lián)數(shù)組。
  • depth: 它是一個(gè)整型參數(shù),用于指定遞歸深度。
  • options: 它是一個(gè) JSON 解碼的整型位掩碼。支持 JSON_BIGINT_AS_STRING。

示例:

下面例子展示了如何使用 PHP 解碼 JSON 對(duì)象:

<?php
    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

    var_dump(json_decode($json));
    var_dump(json_decode($json, true));
?>

執(zhí)行時(shí)生成如下所示結(jié)果:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)