当前位置: 首页 > 面试题库 >

为什么json_encode添加反斜杠?

鄂曦之
2023-03-14
问题内容

我已经使用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%");
  });

问题答案:

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

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

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

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

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



 类似资料:
  • 问题内容: 我试图使用Gson将Java对象转换为json。但是当我尝试打印出来时,我得到了这个JSON {“ user”:“ {\” email \“:\” abc@gmail.com \“,\” lastName \“:\” Las \“,\” name \“:\” amy \“,\” password \“:\” qwe123 \“,\”电话\“:\” 8901245244 \“}”} 我试

  • 我正在Jersey上构建REST服务,并使用Jackson从我模型的java类生成JSON。模型具有绝对简单的值,我认为这是最典型的情况。但我得到了奇怪的结果: 我的期待结果: 我的字段源值不包含任何特殊字符。这些是简单的单词。 这是我的Java类。实体: Rest服务等级: 我尝试使用注释JsonRawValue来表示字符串属性: 但在这种情况下,结果是: 我期望: 很明显,Jackson以某种

  • 问题内容: 当我创建一个包含反斜杠的字符串时,它们会重复: 为什么? 问题答案: 你们看到的是代表的由它的创建方法。如果您进行打印,则可以看到实际上有一个反斜杠,如您所愿: 下面的字符串中包含三个字符,而不是四个: Python在字符串中表示反斜杠,因为反斜杠是转义字符-例如,表示换行符和表示制表符。 有时这会给您带来麻烦: 当Python返回字符串的表示形式时,它将起到安全的作用,转义所有反斜杠

  • 问题内容: 为什么用显示器输出该日期? 如何转换为? 问题答案: 在PHP 5.4中,可以使用: 否则,您必须进行一些琐碎的后处理 请注意,这是表示JSON 的有效方法。

  • 要发布一个插件,我必须更改代码以使用Wordpress HTTP API。 因此,我翻译了我的代码。 之前。 之后 但是对于函数wpremotepost我有这个问题。 当JSON数据发送到远程主机时,数据内部带有反斜杠。 示例: 怎么啦? 我在翻译原点代码时有错吗? 我需要一些帮助来发送没有这些转义字符的JSON数据。 多谢了。

  • 问题内容: 如何删除字符串上的反斜杠?什么时候使用? 例如: 注意:当您回显$ str时,不会有任何问题…但是,当您使用回显时,反斜杠将会出现。 有办法解决吗? 问题答案: