PHP5.2.0之前版本使用JSON函数的方法
PHP5.2.0之前版本使用JSON函数的方法
我们知道PHP在其版本5.2.0之后才支持 JSON相关函数,在此版本之前如果我们要使用JSON函数则需要自己实现
JSON的算法已经有人实现了,其下载地址为:http://pear.php.net/pepr/pepr-proposal-show.php?id=198
但是它是一个类这与我们的使用习惯不同,于是我们需要将它包装下,其代码如下:
/**
* 对象转换成数组 递归函数
* @param $value 需要转换的值
* @return
*/
function object2array($value) {
if (!(is_array($value) || is_object($value))) {
return $value;
}
$array = array();
foreach ($value as $key => $row) {
$array[$key] = object2array($row);
}
return $array;
}
/**
* 替换JSON方法
*/
if (!function_exists("json_encode")) {
include_once("JSON.php");
function json_encode($array) {
$json = new Services_JSON();
$json_array = $json->encode($array);
return $json_array;
}
/**
* 解析JSON数据
* @param string $json_data 需要解析的JSON数据
* @param bool $toarray 是否需要解析成数组
* @return array 返回解析后的数组
*/
function json_decode($json_data, $toarray = TRUE) {
$json = new Services_JSON();
$array = $json->decode($json_data);
if ($toarray) { // 需要转换成数组
$array = object2array($array);
}
return $array;
}
}
不过以上的递归实现在效率上有一些慢,它需要遍历这个数组的所有元素,
如果只限于实现二维数组,可以考虑直接使用循环+类型强制转化来做
【EOF】