简体   繁体   English

带有 javascript 变量的 php json_encode

[英]php json_encode with variable for javascript

For example I want a JSON like this:例如我想要一个这样的 JSON:

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

how to pas Theme.colors.red as constant/variable instead of string to be process in javascript?如何在 javascript Theme.colors.red作为常量/变量而不是字符串传递?

my php script currently look like:我的 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 is a data exchange format. JSON 是一种数据交换格式。 As such, it doesn't know what Theme.colors.red is.因此,它不知道Theme.colors.red是什么。

In order to achieve your goal, in Javascript the JSON.parse function can take a second parameter that works as a transforming function.为了实现您的目标,在 Javascript 中, JSON.parse函数可以采用第二个参数作为转换函数。 For example:例如:

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

    return value;
});

I don't know what Theme.colors.red is too, its scope and so on, so it's up to you to implement a transformer callback that fits your needs and avoids dangerous pitfalls.我也不知道Theme.colors.red是什么,它的范围等等,所以由你来实现一个适合你的需求并避免危险陷阱的转换器回调。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM