【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); }