json_encode从键中删除引号?

6 php json

如果我在这样的数组上使用json_encode():

return json_encode(array( 'foo' => 'bar'));
Run Code Online (Sandbox Code Playgroud)

回报是:

{'foo' : 'bar'}
Run Code Online (Sandbox Code Playgroud)

密钥作为文字传递,这是我的脚本绊倒.我真正需要的是:

{ foo : 'bar' }
Run Code Online (Sandbox Code Playgroud)

json_encode是这样做还是我必须用一些丑陋的正则表达式来删除引号?

Pas*_*TIN 14

当我测试这部分代码时:

echo json_encode(array( 'foo' => 'bar'));
die;
Run Code Online (Sandbox Code Playgroud)

我明白了:

{"foo":"bar"}
Run Code Online (Sandbox Code Playgroud)

哪个是有效的JSON.

(注意这些是双引号,而不是你发布的简单引号)


你要求的输出:

{ foo : 'bar' }
Run Code Online (Sandbox Code Playgroud)

是有效的Javascript,但无效JSON - 所以json_encode不会返回.

有关JSON格式的规范,请参阅json.org - 这是Javascript的一个子集,而不是Javascript本身.


你应该调整你的代码, 而不是" 用一些丑陋的正则表达式来剥离自己的引用 ",所以它接受有效的JSON:在我看来,这样做更好.