PHP:json_编码将斜杠更改为\/

PHP:json_编码将斜杠更改为\/,php,Php,我有一个变量,它包含json_encode中的路径 /用户/疯狂狂欢/在线/测试/ 但json_encode将路径转换为: \/users\/crazy_bash\/online\/test\/ 为什么??如何显示正常路径 代码 $pl2 = json_encode(array( 'comment' => $nmp3, 'file' => $pmp3 )); echo($pl2); 你必须在使用前对它进行解码 json\u decode()这是完全合法的json

我有一个变量,它包含json_encode中的路径 /用户/疯狂狂欢/在线/测试/

但json_encode将路径转换为:

 \/users\/crazy_bash\/online\/test\/
为什么??如何显示正常路径

代码

$pl2 = json_encode(array(
    'comment' => $nmp3,
    'file' => $pmp3
));
echo($pl2);

你必须在使用前对它进行解码


json\u decode()

这是完全合法的json,请参阅<代码>\/在取消序列化字符串时转换为
/
。如果输出由适当的JSON解析器进行非序列化,为什么还要担心呢

如果您坚持在输出中使用
\/
,可以使用
str\u replace()

请注意,根据字符串的定义,它仍然是有效的JSON:



(来源:)

逃逸的索利多金币是合法的。但如果您想要一个不转义的结果,请在JSON编码选项中使用
JSON\u UNESCAPED\u斜杠。然而,这是在PHP5.4之后添加的。

所以,
str\u replace('\\/','/',$pl2)
会很有帮助。

这就是
json\u encode
应该做的。一旦你对它进行了
json\u解码
json.parse
就可以了

var f = {"a":"\/users\/crazy_bash\/online\/test\/"}
console.log(f.a); // "/users/crazy_bash/online/test/"

var h = JSON.parse('{"a":"\/users\/crazy_bash\/online\/test\/"}');
console.log(h.a); // "/users/crazy_bash/online/test/"

我也有同样的问题,基本上你需要解码你的数据,然后进行编码,这样它就可以正常工作,没有条带,检查代码

$getData=json\u decode($getTable);
$json=json_encode($getData);
标题('Content-Type:application/json');
打印$json;

这就是
json\u encode()
应该做的,不是吗?如果你解码json字符串,它会再次正确,不是吗?尝试使用json_解码?没有理由这样做,一旦解析或解码,字符串是正确的。是的,我知道。但是不逃跑的索利多金币也是合法的。“更干净(非常主观)”或“人性化”的结果将对某人有所帮助。我同意这个帖子;这张图片不是显示前斜杠和后斜杠都需要转义才能成为有效的JSON吗?当然是。。。有什么问题吗?@Rocket没有,它说除了“或\或控制字符
之外,
任何UNICODE字符都是允许的(包括前斜杠和后斜杠)。此外,
\/
也会被识别,它将成为
/
。有多种方法可以指定正斜杠,包括
\u002F
@Lekensteyn:啊,好吧,图表有点混乱:-P
var f = {"a":"\/users\/crazy_bash\/online\/test\/"}
console.log(f.a); // "/users/crazy_bash/online/test/"

var h = JSON.parse('{"a":"\/users\/crazy_bash\/online\/test\/"}');
console.log(h.a); // "/users/crazy_bash/online/test/"