issue 2740 rollback json_encode2 function (Because in other feature error )

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12383 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-12-12 01:44:52 +00:00
parent e0e6cdd1b2
commit 8327266214
2 changed files with 47 additions and 1 deletions

View file

@ -1109,7 +1109,39 @@ function detectUTF8($string, $return_convert = false, $urldecode = true)
*/
function json_encode2($data)
{
return json_encode($data);
switch (gettype($data))
{
case 'boolean':
return $data?'true':'false';
case 'integer':
case 'double':
return $data;
case 'string':
return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"';
case 'object':
$data = get_object_vars($data);
case 'array':
$rel = false; // relative array?
$key = array_keys($data);
foreach($key as $v)
{
if(!is_int($v))
{
$rel = true;
break;
}
}
$arr = array();
foreach ($data as $k=>$v)
{
$arr[] = ($rel?'"'.strtr($k, array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v);
}
return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']';
default:
return '""';
}
}
/**

View file

@ -290,6 +290,13 @@ class counterModel extends counter
$date = date('Ymd');
$output = $this->getHourlyStatus('week', $date);
$tmp = array();
foreach($output->list AS $key=>$value)
{
$tmp["'".$key."'"] = $value;
}
$output->list = $tmp;
$this->add('data', $output);
}
@ -298,6 +305,13 @@ class counterModel extends counter
$date = date('Ymd');
$output = $this->getHourlyStatus('week', $date, 0, true);
$tmp = array();
foreach($output->list AS $key=>$value)
{
$tmp["'".$key."'"] = $value;
}
$output->list = $tmp;
$this->add('data', $output);
}
}