一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

json_encode() 和 json_decode() 实例

时间:2010-05-17 编辑:简简单单 来源:一聚教程网

/*
json_encode - 返回一个值的JSON格式数组
json_encode — Returns the JSON representation of a value


*/


$arr = array ('a'=>"www.111com.net",'b'=>"cc",'c'=>3,'d'=>4,'e'=>5);

$carray = json_encode($arr);

echo $carray ;

//结果{"a":"www.111com.net","b":"cc","c":3,"d":4,"e":5} 现在我们用json_decode

$array = json_decode ( $carray );

print_r( $array );

/*
 结果
 (
    [a] => www.111com.net
    [b] => cc
    [c] => 3
    [d] => 4
    [e] => 5
 )
*/

//随着字符串键PHP将考虑它的一个对象:


echo json_encode(array('id'=>'www.111com.net'));
echo json_encode(array('testtext'));

/*
{"id":"www.111com.net"}
["testtext"]

一个输出json格式的函数
*/

 代码如下 复制代码

function json_format($json)
{
    $tab = "  ";
    $new_json = "";
    $indent_level = 0;
    $in_string = false;
   
    $json_obj = json_decode($json);
   
    if(!$json_obj)
        return false;
   
    $json = json_encode($json_obj);
    $len = strlen($json);
   
    for($c = 0; $c < $len; $c++)
    {
        $char = $json[$c];
        switch($char)
        {
            case '{':
            case '[':
                if(!$in_string)
                {
                    $new_json .= $char . " " . str_repeat($tab, $indent_level+1);
                    $indent_level++;
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case '}':
            case ']':
                if(!$in_string)
                {
                    $indent_level--;
                    $new_json .= " " . str_repeat($tab, $indent_level) . $char;
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case ',':
                if(!$in_string)
                {
                    $new_json .= ", " . str_repeat($tab, $indent_level);
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case ':':
                if(!$in_string)
                {
                    $new_json .= ": ";
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case '"':
                $in_string = !$in_string;
            default:
                $new_json .= $char;
                break;                   
        }
    }
   
    return $new_json;
}

/*


在用到json_encode这个函数注意,它不支持中文,所以我们要先把编辑urlencode编辑再在js转,并且js返回的数据给php教程时也要注意一点,json返回的数据是utf-8的如果你的php文档是gbk的,所以也要用incov转换成gbk哦。
*/

热门栏目