資料轉換js格式的資料是我們常用一種資料傳遞的方法,特別像ajax中會時常用到把資料轉換成json然後再轉換回來,下面看一個執行個體。
| 代碼如下 |
複製代碼 |
function array_to_json($array) { if (! is_array ( $array )) { return false; } $associative = count ( array_diff ( array_keys ( $array ), array_keys ( array_keys ( $array ) ) ) ); if ($associative) { $construct = array (); foreach ( $array as $key => $value ) { // We first copy each key/value pair into a staging array, // formatting each key and value properly as we go. // Format the key: if (is_numeric ( $key )) { $key = "key_$key"; } $key = """ . addslashes ( $key ) . """; // Format the value: if (is_array ( $value )) { $value = array_to_json ( $value ); } else if (! is_numeric ( $value ) || is_string ( $value )) { $value = """ . addslashes ( $value ) . """; } // Add to staging array: $construct [] = "$key: $value"; } // Then we collapse the staging array into the JSON form: $result = "{" . implode ( ",", $construct ) . "}"; } else { // If the array is a vector (not associative):
$construct = array (); foreach ( $array as $value ) { // Format the value: if (is_array ( $value )) { $value = array_to_json ( $value ); } else if (! is_numeric ( $value ) || is_string ( $value )) { $value = """ . addslashes ( $value ) . """; } // Add to staging array: $construct [] = $value; } // Then we collapse the staging array into the JSON form: $result = "[" . implode ( ", ", $construct ) . "]"; } return $result; }
|
你可以試試這個 然後json_encode換成上面的函數看看正常了嗎
| 代碼如下 |
複製代碼 |
if($_GET['enews']=='ok'){ echo json_encode(array('a'=>'王進'));exit; } ?> |
關於php中json_encode
json_encode()將PHP的不同類型的變數轉換為對應的JSON字串 string json_encode(mixed $value [, int
$options = 0])
PHP 5.3.0
JSON_HEX_QUOT: 將所有的雙引號(”)轉換為u0022。
// 執行個體代碼:
| 代碼如下 |
複製代碼 |
$data = '"'; echo json_encode($data); // """ echo json_encode($data, JSON_HEX_QUOT); |
// "u0022"■JSON_HEX_TAG: 將所有的大於符號(>)轉換為u003E,將
所有的小於符號(<)轉換為 u003C。
JSON_HEX_AMP: 將所有的與號(&)轉換為 u0026。
JSON_HEX_APOS: 將所有的單引號(’)轉換為u0027。
JSON_FORCE_OBJECT: 當value為非關聯陣列時強制輸出結果為JSON對象。在接收者要求資料為對象且value為空白數組時
使用。
// 執行個體代碼:
| 代碼如下 |
複製代碼 |
$data = array(); echo json_encode($data); // [] echo json_encode($data, JSON_FORCE_OBJECT); // {} |
PHP 5.3.3
JSON_NUMERIC_CHECK: Encodes numeric strings as numbers.
PHP 5.4.0
JSON_BIGINT_AS_STRING: Encodes large integers as their original string value. Available since PHP
5.4.0.
JSON_PRETTY_PRINT: Use whitespace in returned data to format it. Available since PHP 5.4.0.
JSON_UNESCAPED_SLASHES: Don’t escape /. Available since PHP 5.4.0.
JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally (default is to escape as uXXXX).
Available since PHP 5.4.0.
http://www.bkjia.com/PHPjc/445290.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445290.htmlTechArticle資料轉換js格式的資料是我們常用一種資料傳遞的方法,特別像ajax中會時常用到把資料轉換成json然後再轉換回來,下面看一個執行個體。 代碼如...