溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php json常用方法有哪些

發(fā)布時間:2021-09-24 13:59:23 來源:億速云 閱讀:160 作者:柒染 欄目:編程語言

本篇文章為大家展示了php json常用方法有哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

php json常用方法:1、json_encode(),用于對JSON格式的字符串進行解碼;2、json_encode(),用于對JSON格式的字符串進行解碼;3、json_last_error(),用于返回最后發(fā)生的錯誤。

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

php json常用方法:

1、json_encode()

PHP json_encode() 用于對變量進行 JSON 編碼,該函數(shù)如果執(zhí)行成功返回 JSON 數(shù)據(jù),否則返回 FALSE 。

語法

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

示例:

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

輸出結(jié)果:

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

2、json_encode()

json_decode() 函數(shù)用于對 JSON 格式的字符串進行解碼,并轉(zhuǎn)換為 PHP 變量。

語法:

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

參數(shù):

  • json_string: 待解碼的 JSON 字符串,必須是 UTF-8 編碼數(shù)據(jù)

  • assoc: 當該參數(shù)為 TRUE 時,將返回數(shù)組,F(xiàn)ALSE 時返回對象。

  • depth: 整數(shù)類型的參數(shù),它指定遞歸深度

  • options: 二進制掩碼,目前只支持 JSON_BIGINT_AS_STRING 。

示例:

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

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

輸出結(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)
}

3、json_last_error()

json_last_error — 返回最后發(fā)生的錯誤

語法:

json_last_error()

如果有,返回 JSON 編碼解碼時最后發(fā)生的錯誤。會返回一個整型(integer),這個值會是以下的常量之一:

JSON 錯誤碼
常量含義可用性
JSON_ERROR_NONE沒有錯誤發(fā)生
JSON_ERROR_DEPTH到達了最大堆棧深度
JSON_ERROR_STATE_MISMATCH無效或異常的 JSON
JSON_ERROR_CTRL_CHAR控制字符錯誤,可能是編碼不對
JSON_ERROR_SYNTAX語法錯誤
JSON_ERROR_UTF8異常的 UTF-8 字符,也許是因為不正確的編碼。PHP 5.3.3
JSON_ERROR_RECURSIONOne or more recursive references in the value to be encodedPHP 5.5.0
JSON_ERROR_INF_OR_NANOne or more       NAN   or INF   values in the value to be encodedPHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE指定的類型,值無法編碼。PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME指定的屬性名無法編碼。PHP 7.0.0
JSON_ERROR_UTF16畸形的 UTF-16 字符,可能因為字符編碼不正確。PHP 7.0.0

示例:

<?php
// 一個有效的 json 字符串
$json[] = '{"Organization": "PHP Documentation Team"}';

// 一個無效的 json 字符串會導(dǎo)致一個語法錯誤,在這個例子里我們使用 ' 代替了 " 作為引號
$json[] = "{'Organization': 'PHP Documentation Team'}";


foreach ($json as $string) {
    echo 'Decoding: ' . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Underflow or the modes mismatch';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
        break;
        default:
            echo ' - Unknown error';
        break;
    }

    echo PHP_EOL;
}
?>

輸出結(jié)果:

Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON


上述內(nèi)容就是php json常用方法有哪些,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI