q456123 发表于 2015-8-26 13:16:11

PHP array_to_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换成上面的函数看看正常了吗



<?php
if($_GET['enews']=='ok'){
echo json_encode(array('a'=>'王进'));exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>aa</title>
<script type="text/javascript" src="http://img.lanrentuku.com/img/js/jquery.js"></script>
<script type="text/javascript">
$(function(){
$.get("?enews=ok", function(result){
alert(result);
});
});
</script>
</head>
<body>
</body>
</html>
  
页: [1]
查看完整版本: PHP array_to_json