ddxiami

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2375|回复: 0

[php函数] JSON处理函数json_encode和json_decode

[复制链接]
发表于 2014-10-23 08:31:34 | 显示全部楼层 |阅读模式
<?php
//json转数组
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
//当参数为 TRUE 时,将返回 array 而非 object
var_dump(json_decode($json));
echo '<br>';
var_dump(json_decode($json, true));
echo '<br>';

//数组转json
$arr = array(
                        "a"=>1,
                        "b"=>2,
                        "c"=>3,
                        "d"=>4,
                        "e"=>5
                );
$json2 = json_encode($arr);
echo $json2;
echo '<br>';

//测试中文,需要urlencode转换
$arr_cn = array("a"=>"中文1","b"=>"中文2");
$json3 = json_encode($arr_cn);
echo $json3;
?>
==========================================================
//中文转换案例
<?php
/**************************************************************
*
*        使用特定function对数组中所有元素做处理
*        @param        string        &$array                要处理的字符串
*        @param        string        $function        要执行的函数
*        @return boolean        $apply_to_keys_also                是否也应用到key上
*        @access public
*
*************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }

        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}

/**************************************************************
*
*        将数组转换为JSON字符串(兼容中文)
*        @param        array        $array                要转换的数组
*        @return string                转换得到的json字符串
*        @access public
*
*************************************************************/
function JSON($array) {
        arrayRecursive($array, 'urlencode', true);
        $json = json_encode($array);
        return urldecode($json);
}

$array = array
       (
          'Name'=>'希亚',
          'Age'=>20
       );


echo JSON($array);
?>

这次成功了,运行结果如下:
{"Name":"希亚","Age":"20"}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|技术文档库 ( 闽ICP备15017263号-2 )|网站地图

GMT+8, 2025-5-18 20:48 , Processed in 0.035834 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表