您的位置:首页 > Web前端 > JavaScript

ajax中,使用Json代替xml加快速度

2006-05-14 23:45 639 查看
<?php

/*----------------------------------------------------------------------
PHP JSON Class
==============
The PHP JSON Class can be used to encode a php array or object into
Java Script Object Notation, without the need for an additional PHP
Extension.

Normal usage is as follows:

$json = new json;
$encoded = $json->encode($var);
echo $encoded;

Version 0.5
Copyright Jack Sleight - www.reallyshiny.com
This script is licensed under the:
Creative Commons Attribution-ShareAlike 2.5 License
----------------------------------------------------------------------*/

class json {

/*--------------------------------------------------
Encode the variable/array/object
--------------------------------------------------*/

function encode($input) {

$output = $this->get(NULL, $input);

return $output;

}

/*--------------------------------------------------
Get the encoded variable
--------------------------------------------------*/

function get($key, $value, $parent = NULL) {

$type = $this->type($key, $value);

switch ($type) {

case 'object':
$value = '{'.$this->loop($value, $type).'}';
break;
case 'array':
$value = '['.$this->loop($value, $type).']';
break;
case 'number':
$value = $value;
break;
case 'string':
$value = '"'.$this->escape($value).'"';
break;
case 'boolean':
$value = ($value) ? 'true' : 'false';
break;
case 'null':
$value = 'null';
break;

}

if(!is_null($key) && $parent != 'array')
$value = '"'.$key.'":'.$value;

return $value;

}

/*--------------------------------------------------
Check the type of the variable
--------------------------------------------------*/

function type($key, $value) {

if(is_object($value)) {
$type = 'object';
}
elseif(is_array($value)) {
if($this->is_assoc($value))
$type = 'object';
else
$type = 'array';
}
elseif(is_int($value) || is_float($value)) {
$type = 'number';
}
elseif(is_string($value)) {
$type = 'string';
}
elseif(is_bool($value)) {
$type = 'boolean';
}
elseif(is_null($value)) {
$type = 'null';
}
else {
die($key.' is of an unsupported type.');
}

return $type;

}

/*--------------------------------------------------
Loop through the array/object
--------------------------------------------------*/

function loop($input, $type) {

$output = NULL;

foreach($input as $key => $value) {
$output .= $this->get($key, $value, $type).',';
}

$output = trim($output, ',');

return $output;

}

/*--------------------------------------------------
Escape strings
--------------------------------------------------*/

function escape($string) {

$find = array('//', '"', '/', "/b", "/f", "/n", "/r", "/t", "/u");
$repl = array('////', '/"', '//', '/b', '/f', '/n', '/r', '/t', '/u');

$string = str_replace($find, $repl, $string);

return $string;

}

/*--------------------------------------------------
Check if the array is associative
--------------------------------------------------*/

function is_assoc($array) {

krsort($array, SORT_STRING);
return !is_numeric(key($array));

}

}

?>

从这个站找来的,还有些相关资料,大家可以再看看
http://www.reallyshiny.com/scripts/php-json-class/

这个地址是pecl的json编译好了的dll下载,可以根据自己使用php版本来下有
http://pecl4win.php.net/ext.php/php_json.dll

具体使用办法:

$arr=array(
"name"=>"killall","sex"=>"boy");

$str=json_encode($arr);//将数组转为json格式
echo $str;
echo "<br>";
$a=json_decode($str,false);//true返回为数组,flase返回对对象,默认为flase
echo $a->name;
?>

在客户端 str=eval("(+json+")");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: