【问题标题】:Remove added backslashes from JSON string in Laravel从 Laravel 中的 JSON 字符串中删除添加的反斜杠
【发布时间】:2018-04-19 16:25:02
【问题描述】:

所以我尝试在数据库中存储一些 HTML 代码,然后通过 API 检索它。

初始 HTML:

<img src="https://www.google.se/images/google_80w1ht.gif" alt="Google logo">

然后我没有任何麻烦地存储在数据库中:

$data = $request->only(['content');

$comment = $this->repo->update($data, $id);

如果我去 MySQL Workbench,这是存储的数据:

<img src="https://www.google.se/images/google_80wht.gif" alt="Google logo">

但是,当我检索到它想将 HTML 输出为 JSON 参数时,它被打脸了。

这是json:

{"title": "<img src=\"https://www.google.se/images/google_80w1ht.gif\" alt=\"Google logo\">"}

我没有应用任何转换,也没有在插入期间或检索时应用。

如何删除添加的额外反斜杠? ()

【问题讨论】:

    标签: php json laravel lumen


    【解决方案1】:

    试试json_decode(your_data) 这应该可以。

    【讨论】:

    • 是的,当然:) 谢谢。我只是提前了一步,并没有意识到客户端总是要对我的 JSON 进行 json_decode :P
    【解决方案2】:

    我没有应用任何转换,也没有在插入期间或检索时应用。

    您已将其转换为 JSON。那是一种转变。

    它被砍了

    斜线是必需的。

    没有它们会发生这种情况:

    "<img src="h
    ^         ^^
    |         ||
    |         |Error
    |         End of string
    Start of string
    

    data 不包含斜杠,只包含它的 JSON 表示。当您解析 JSON 时,转义序列将被消耗,您将获得原始字符串。

    【讨论】:

    • 谢谢你,一定是我今天早上少了一杯咖啡:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多