數(shù)據(jù)轉(zhuǎn)換js格式的數(shù)據(jù)是我們常用一種數(shù)據(jù)傳遞的方法,特別像ajax中會時常用到把數(shù)據(jù)轉(zhuǎn)換成json然后再轉(zhuǎn)換回來,下面看一個實(shí)例。
代碼如下 |
復(fù)制代碼 |
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換成上面的函數(shù)看看正常了嗎
代碼如下 |
復(fù)制代碼 |
if($_GET['enews']=='ok'){
echo json_encode(array('a'=>'王進(jìn)'));exit;
}
?><script type="text/javascript" src="jquery.js"></script><script type="text/javascript"> $(function(){ $.get("?enews=ok", function(result){ alert(result); }); }); </script>
|
|