存档

文章标签 ‘json’

javascript 类似php的print_r,dump函数

2009年11月5日

原文地址

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 , , , ,

PHP 转换Array为Json数据函数

2009年11月5日

原文

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 , , , ,

Cakephp1.2中JQuery和JSON的使用

2009年6月26日

文章原文来自于 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 , , , ,