php json kaedah biasa: 1. json_encode(), digunakan untuk menyahkod rentetan dalam format JSON 2. json_encode(), digunakan untuk menyahkod rentetan dalam format JSON 3. json_last_error() , digunakan untuk mengembalikan yang terakhir ralat yang berlaku.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi PHP 7.1, komputer DELL G3
Kaedah biasa untuk php json :
1. json_encode()
PHP json_encode() digunakan untuk mengekod pembolehubah JSON dilaksanakan dengan jayanya, jika tidak, kembalikan FALSE.
Sintaks
string json_encode ( $value [, $options = 0 ] )
Contoh:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
Hasil output:
{"a":1,"b":2,"c":3,"d":4,"e":5}
2. Fungsi json_encode()
json_decode() digunakan untuk menyahkod rentetan format JSON dan menukarnya kepada pembolehubah PHP.
Sintaks:
mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Parameter:
json_string: Rentetan JSON untuk dinyahkod, mestilah data yang dikodkan UTF-8
assoc: Apabila parameter ini TRUE, tatasusunan akan dikembalikan dan apabila FALSE, objek akan dikembalikan.
kedalaman: parameter jenis integer, yang menentukan kedalaman rekursi
pilihan: topeng binari, pada masa ini hanya JSON_BIGINT_AS_STRING yang disokong.
Contoh:
Hasil keluaran:
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 - Mengembalikan ralat terakhir yang berlaku
Sintaks:
json_last_error()
Jika ada, mengembalikan ralat terakhir yang berlaku semasa pengekodan dan penyahkodan JSON. Integer akan dikembalikan dan nilai ini akan menjadi salah satu daripada pemalar berikut:
常量 | 含义 | 可用性 |
---|---|---|
JSON_ERROR_NONE | 没有错误发生 | |
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_RECURSION | One or more recursive references in the value to be encoded | PHP 5.5.0 |
JSON_ERROR_INF_OR_NAN | One or more NAN
or INF
values in the value to be encoded | PHP 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 |
JSON_ERROR_NONE
<?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; } ?>
JSON_ERROR_DEPTH
JSON_ERROR_STATE_MISMATCH
Decoding: {"Organization": "PHP Documentation Team"} - No errors Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON
JSON_ERROR_SYNTAX
JSON_ERROR_UTF8
JSON_ERROR_RECURSION
JSON_ERROR_INF_OR_NAN
INF
nilai dalam nilai yang akan dikodkanJSON_ERROR_UNSUPPORTED_TYPE
td> JSON_ERROR_INVALID_PROPERTY_NAME
JSON_ERROR_UTF16
Atas ialah kandungan terperinci Apakah kaedah biasa php json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!