php json_encode,带有javascript变量


php json_encode with variable for javascript

例如,我想要这样的JSON:

{"start": "2015-01-01", "end": "2015-01-01", "backgroundColor": Theme.colors.red}

如何将Theme.colors.red作为常量/变量而不是字符串在javascript中进行处理?

我的php脚本目前看起来像:

$event = new StdClass;
$event->title = $off->note;
$event->start = date('D M d Y', strtotime($off->y.'-'.$off->m.'-'.$off->d));
$event->end = date('D M d Y', strtotime($off->y.'-'.$off->m.'-'.$off->d));
$event->backgroundColor = 'Theme.colors.red';
JSON是一种数据交换格式。因此,它不知道Theme.colors.red是什么。

为了实现您的目标,在Javascript中,JSON.parse函数可以使用第二个参数作为转换函数。例如:

var data = JSON.parse(rawJSON, function(key, value) {
    // Warning: eval is evil
    if (key === "backgroundColor") return eval(value);
    return value;
});

我也不知道Theme.colors.red是什么,它的范围等等,所以由您来实现一个适合您的需求并避免危险陷阱的transformer回调。