Skip navigation.

exploreopera

| Help

Sign up | Help

极湖

无不用其“极”

Posts tagged with "JSON"

用 JSON “包装”函数的试验

,

JSON 是我最喜欢的数据格式,JSON 格式的数据可以包装哈希、数组、单独的数或字符串,问题是,能不能在JSON里面混入函数呢?带着这个问题,做了一个小试验,如下:

var JSONOBJ = {
  'a':1,
  'b':[1,2,3],
  'c':{'x':1,'y':2, 'z':[1,2]},
  'd':function(x){return x+this['a']}
};

alert(JSONOBJ['d'](3));

结果,弹出窗口显示:4

也就是说,用JSON也可以“包装”函数。

发现一个好东西: JSONER

,

如果用 JavaScript 和 JSON 格式的数据频繁打交道,这个叫 JSONER 的库定能助您一臂之力。

关于 JSONER 的链接:
使用例
下载地址

从PHP数组到JSON字符串的转换

, ,

有时候需要把服务器端结构化的数据直接传到客户端,通过JavaScript来处理,我认为最好的方法是把PHP的数组转换成JSON字符串。
于是作了这么一个函数:
/**
 * 
 * 将PHP的数组转化成JSON字符串
 * @param     $array  数组
 * @param     $name   键
 * @return    HTML代码
**/
function PHP_array_to_json($arr_data, $name = '')
{
    $str_json = '';
    if($name !== '') {
        $str_json .= "$name:";
    }
    $str_json .= "{";
    $str_koma = '';
    foreach($arr_data as $key => $val) {
        if(is_array($val)) {
            $str_json .= $str_koma . PHP_array_to_json($val, $key);
        } else {
            if(!ctype_digit($val)) {
                $val = str_replace("\\", "\\\\", $val);
                $val = str_replace('"', '\"', $val);
                $val = '"' . $val. '"';
            }
            $str_json .= "$str_koma$key:$val";
        }
        $str_koma = ",";
    }
    $str_json .= "}";
    
    return $str_json;
}

测试:
<?php
$arr_test = array (
    'k1' => array (
        0 => '无效',
        1 => '有効',
    ),
    'k2' => array (
        1 => "O\"K",
        2 => "N\\G",
    ),
    'k3' => array (
        1, 2, 3, 4, 5,
        array('a','b','c')
    )
);

echo PHP_array_to_json($arr_test);
?>
October 2008
SMTWTFS
September 2008November 2008
1234
567891011
12131415161718
19202122232425
262728293031