如何使用不带引号的密钥生成JSON?

时间:2014-05-28 13:04:58

标签: php json

这就是我想要做的。我想更改下面的关联数组中的键

array("role" => "annotation");

上面的代码返回JSON

的结果
{"role": "annotation"} 

我希望上面的输出类似于

下面的输出
{role: "annotation"}

3 个答案:

答案 0 :(得分:4)

JSON string keys are always quoted。如果他们不是,他们就不会与JSON标准兼容。无法使用json_encode()更改此行为。

如果你想要JavaScript对象文字,允许不带引号的字符串键,你需要编写自己的代码来输出,我不推荐。

答案 1 :(得分:-1)

试试这个

$a = array($role => "annotation");

echo $a = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', json_encode($a));

答案 2 :(得分:-1)

@Kapil

preg_replace('/"([^\s"]+)"\s*:\s*/', '$1:', $json);

是更安全的选择。