php json常用方法:1、json_encode(),用於對JSON格式的字串進行解碼;2、json_encode(),用於對JSON格式的字串進行解碼;3、json_last_error() ,用於傳回最後發生的錯誤。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
php json常用方法:
1、json_encode()
PHP json_encode() 用於對變數進行JSON 編碼,該函數如果執行成功返回JSON 數據,否則返回FALSE 。
語法
string json_encode ( $value [, $options = 0 ] )
範例:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
輸出結果:
{"a":1,"b":2,"c":3,"d":4,"e":5}
2、json_encode()
json_decode() 函數用於對JSON 格式的字串進行解碼,並轉換為PHP 變數。
語法:
mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
參數:
#json_string: 待解碼的JSON 字串,必須是UTF-8 編碼資料
assoc: 當此參數為TRUE 時,將傳回數組,FALSE 時傳回物件。
depth: 整數型別的參數,它指定遞歸深度
options: 二進位掩碼,目前只支援 JSON_BIGINT_AS_STRING 。
範例:
輸出結果:
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 —傳回最後發生的錯誤
語法:
json_last_error()
如果有,傳回JSON 編碼解碼時最後發生的錯誤。會回傳一個整數(integer),這個值會是以下的常數之一:
意義 | 可用性 | |
---|---|---|
JSON_ERROR_NONE
| # #沒有錯誤發生||
JSON_ERROR_DEPTH ##到達了最大堆疊深度 | ||
JSON_ERROR_STATE_MISMATCH 無效或例外的JSON | # | |
#JSON_ERROR_CTRL_CHAR #控製字元錯誤,可能是編碼不對 | ||
#JSON_ERROR_SYNTAX 語法錯誤 | ||
異常的UTF-8 字符,也許是因為不正確的編碼。 | PHP 5.3.3||
One or more recursive references in the value to be encoded | PHP 5.5.0||
#One or more | #One or more #> ##NAN
or | INF# values in the value to be encoded |
| JSON_ERROR_UNSUPPORTED_TYPEJSON_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 字符串会导致一个语法错误,在这个例子里我们使用 ' 代替了 " 作为引号 $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; } ?>
Decoding: {"Organization": "PHP Documentation Team"} - No errors Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON
以上是php json常用方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!