【json数组转对象】php数组转Json的例子

更新时间:2019-10-14    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

数组转Json

 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  

       );  

  

/* 

$array=array ( 

  0 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  1 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  2 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '25', 

    'name' => '男士', 

    'province' => '上海', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  3 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '186****1046', 

  ), 

  4 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '200元的爱玛电动车代金券', 

    'mobile' => '186****1046', 

  ), 

  5 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  6 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  7 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  8 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '河南', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  9 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '0', 

      'photoPath' => '/resources/v20/images/boy.png', 

    ), 

    'age' => '24', 

    'name' => '男士', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

  10 =>  

  array ( 

    'icon' =>  

    array ( 

      'hasPhoto' => '1', 

      'photoPath' => '/201412/11/11/49/1418269782350A03EA57_c.jpg', 

    ), 

    'age' => '20', 

    'name' => '白日做梦', 

    'province' => '北京', 

    'lottery' => '100元的爱玛电动车代金券', 

    'mobile' => '', 

  ), 

); 

*/  

  

    

echo JSON($array);  

?>

json对象转成

 

普通数组 也就是 Array 的最简单方法还是 用 json_decode() 方法,只需要在后面多写一个参数就可以搞定

json_decode($json,true);

这样就可以将 json 转换成数组形式了,key 保持原来格式

$json = ’{“name”:”zhangsan”,”age”:20,”sex”:”nan”}’; 

print_r(json_decode($json,true));

这样的json数据解析后 就会成为下面这样的数组
Array
(
    [name] => zhangsan
    [age] => 20
    [sex] => nan
)

数组转json 中文字符

array(
            'name'=>'四海一家',
            'subname'=>'南阳店',
            'agv'=>'5',
            'add'=>'新街口地铁站E24号',
            'tel'=>'13382041088',
      ),
      '1'=>array(
            'name'=>'四海二家',
            'subname'=>'南阳店',
            'agv'=>'5',
            'add'=>'新街口地铁站E24号',
            'tel'=>'13382041088',
      ),
           '2'=>array(
            'name'=>'四海三家',
            'subname'=>'南阳店',
            'agv'=>'5',
            'add'=>'新街口地铁站E24号',
            'tel'=>'13382041088',
      ),
           '3'=>array(
            'name'=>'四海四家',
            'subname'=>'南阳店',
            'agv'=>'5',
            'add'=>'新街口地铁站E24号',
            'tel'=>'13382041088',
      ),
           '4'=>array(
            'name'=>'四海五家',
            'subname'=>'南阳店',
            'agv'=>'5',
            'add'=>'新街口地铁站E24号',
            'tel'=>'13382041088',
      ),
  
);
$k=JSON($josin);
echo $k;
 
    /**************************************************************
     *
     *  使用特定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);
    }

本文来源:http://www.bbyears.com/wangyezhizuo/73223.html