原文地址
http://www.openjs.com/scripts/others/dump_function_php_print_r.php
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;
var level_padding = "";
for(var j = 0; j < level; j++) level_padding += " ";
if(typeof(arr) == 'object') {
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') {
dumped_text += level_padding + "'" + item + "'\n";
dumped_text += dump(value,level + 1);
} else {
dumped_text += level_padding + "'" + item + "' => '" + value + "'\n";
}
}
} else {
dumped_text = "=> " + arr + " <=( " + typeof(arr) + " )";
}
return dumped_text;
}
更好的解决方法:
http://www.netgrow.com.au/files/javascript_dump.cfm
已经加入资源分类中
谢谢,静水之人的分享!
Jack Default, JavaScript, PHP dump, JavaScript, javascript print_r dump, json, print_r
原文
http://www.bin-co.com/php/scripts/array2json/
函数如下:
function arrayToJson($arr) {
if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.
$parts = array();
$is_list = false;
//Find out if the given array is a numerical array
$keys = array_keys($arr);
$max_length = count($arr)-1;
if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1
$is_list = true;
for($i=0; $i<count($keys); $i++) { //See if each key correspondes to its position
if($i != $keys[$i]) { //A key fails at position check.
$is_list = false; //It is an associative array.
break;
}
}
}
foreach($arr as $key=>$value) {
if(is_array($value)) { //Custom handling for arrays
if($is_list) $parts[] = array2json($value); /* :RECURSION: */
else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */
} else {
$str = '';
if(!$is_list) $str = '"' . $key . '":';
//Custom handling for multiple data types
if(is_numeric($value)) $str .= $value; //Numbers
elseif($value === false) $str .= 'false'; //The booleans
elseif($value === true) $str .= 'true';
else $str .= '"' . addslashes($value) . '"'; //All other things
// :TODO: Is there any more datatype we should be in the lookout for? (Object?)
$parts[] = $str;
}
}
$json = implode(',',$parts);
if($is_list) return '[' . $json . ']';//Return numerical JSON
return '{' . $json . '}';//Return associative JSON
}
使用方法:
$dataArr = array(
'aaa' => array(
1,2,3
),
'bbb' => array(
'b_1' => "222",
'b_2' => "555",
'b_3' => array(
'a' => 1,
'b' => 2,
'c' => 3
)
)
);
echo arrayToJson($dataArr);
Jack Default, PHP, json array2json, arrayToJson, json, PHP, php json
文章原文来自于 Eelco Wiersma 的文章 《Using JSON in CakePHP 1.2》
参考文章
Using JSON in CakePHP 1.2
介绍 JSON
JQuery API 1.3
简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。Cakephp1.2提供了对JSON的内置支持,主要体现在两个特殊的方法:
Router::parseExtensions() 和 JavascriptHelper::object()
目标
我们要通过JQuery的$.getJSON方法,获取Cakephp服务端的JSON数据,URL可能是这个样子
http://localhost/posts/index.json
如何完成?
阅读全文…
Jack Cakephp, Default, WorkNote, jQuery Cakephp, jQuery, json, parseExtensions, yoophi
Recent Comment