步驟一、新建文件夾:js,把最新的jquery.js放里邊。?
步驟二、新建文件mygetjson.php,其內容為?
class custom_json {
/**
* Convert array to javascript object/array
* @param array $array the array
* @return string
*/
public static function encode($array)
{
// determine type
if(is_numeric(key($array))) {
// indexed (list)
$output = '[';
for($i = 0, $last = (sizeof($array) - 1); isset($array[$i]); ++$i) {
if(is_array($array[$i])) $output .= self::encode($array[$i]);
else $output .= self::_val($array[$i]);
if($i !== $last) $output .= ',';
}
$output .= ']';
} else {
// associative (object)
$output = '{';
$last = sizeof($array) - 1;
$i = 0;
foreach($array as $key => $value) {?
??????????????? $output .= '"'.$key.'":';?
??????????????? if(is_array($value)) $output .= self::encode($value);?
??????????????? else? $output .= self::_val($value);?
??????????????? if($i !== $last) $output .= ',';?
??????????????? ++$i;?
??????????? }?
??????????? $output .= '}';?
??????? }?
??????? // return?
??????? return $output;?
??? }?
??? /**?
???? * [INTERNAL] Format value?
???? * @param mixed $val the value?
???? * @return string?
???? */?
??? private static function _val($val)?
??? {?
??????? if(is_string($val)) return '"'.rawurlencode($val).'"';?
??????? elseif(is_int($val)) return sprintf('%d', $val);?
??????? elseif(is_float($val)) return sprintf('%F', $val);?
??????? elseif(is_bool($val)) return ($val ? 'true' : 'false');?
??????? else? return 'null';?
??? }?
}?
// prints: ** try it yourself, cannot post long lines here **?
$big_test = array(?
??? array(?
??????? 'name' => array('John', 'Smith'),?
??????? 'age' => 27,?
??????? 'sex' => 0,?
??????? 'height' => 180.53,?
??????? 'is_human' => true,?
??????? 'string' => 'Hello',?
??? ),?
??? array(?
??????? 'name' => array('Green', 'Alien'),?
??????? 'age' => 642,?
??????? 'sex' => null,?
??????? 'height' => 92.21,?
??????? 'is_human' => false,?
??????? 'string' => 'こんにちは!', // test utf8 here?
??? )?
);?
//echo custom_json::encode($big_test);//這個用于測試其是否返回的是json數據?
echo $_GET['jsoncallback'].'('.custom_json::encode($big_test).')';//用一個回調返回?
?>?
步驟三、新建測試頁面test.html,其內容為?
?
??
?
???????
Page Title?
???????
?
??????? ?
?????? ?
? ?
?
?
?
?
?
?