微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么json_encode添加反斜杠?

如何解决为什么json_encode添加反斜杠?

谁能告诉我为什么json_encode添加斜杠?

<当嵌入在HTML脚本元素中时,正斜杠字符可能会导致问题(如果在前面加上斜杠字符,则会触发“脚本元素结尾”的SGML规则)。为了预防起见,将其逃脱。

因为当我尝试使用jQuery.parseJSON(response); 在我的js脚本中,它返回null。所以我想这与斜杠有关。

没有。在JSON "/""\/"是等价的。

您在问题中列出的JSON有效(您可以使用jsonlint进行测试)。您的问题可能与json_encode和之间发生了什么有关parseJSON

解决方法

我已经使用json_encode了很长时间了,到目前为止我还没有遇到任何问题。现在,我正在使用上传脚本,并且尝试在文件上传后返回一些JSON数据。

我有以下代码:

print_r($result); // <-- This is an associative array
echo json_encode($result); // <-- this returns valid JSON

这给了我以下结果:

// print_r result
Array
(
    [logo_url] => http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg
    [img_id] => 54
    [feedback] => Array
        (
            [message] => File uploaded
            [success] => 1
        )

)

// Echo result
{"logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}

谁能告诉我为什么加json_encode斜杠?

更新

@Quentin说,事情是发生之间json_encode.parseJSON与他的权利。

做一个alert(data.toSource());给我以下结果:

({response:"{\"logo_url\":\"http:\\/\\/storelocator.com\\/wp-content\\/uploads\\/gallery\\/7f\\/3b\\/71b9520cfc91a90afbdbbfc9d2b2239b_logo.jpeg\",\"img_id\":\"62\",\"feedback\":{\"message\":\"File uploaded\",\"success\":true}}",status:200})

这不是有效的JSON。它还添加status:200,我不知道它来自哪里。

可能Plupload bind对我返回的数据有影响吗?

这是我的js脚本:

  uploader.bind('FileUploaded',function(up,file,data) {
    alert(data.toSource());
    $('#' + file.id + " b").html("100%");
  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。