从 Laravel 中的 JSON 字符串中删除添加的反斜杠

Posted

技术标签:

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

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

初始 HTML:

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

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

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

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

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

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

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

这是json:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

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

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

它被砍了

斜线是必需的。

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

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

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

【讨论】:

谢谢你,一定是我今天早上少了一杯咖啡:)

以上是关于从 Laravel 中的 JSON 字符串中删除添加的反斜杠的主要内容,如果未能解决你的问题,请参考以下文章

通过删除 Laravel 中的多余字符,从斜杠分隔的 url 中提取参数值

软删除laravel 5中表中的所有记录

通过删除Laravel中的额外字符,从斜杠分隔的URL中提取参数值

无法从添加/删除文本字段中的文本字段值形成 JSON 字符串对象

将字符串值与 PHP/Laravel 中的字符串数组进行比较?

PHP,Laravel:从 JSON 中消除特定的复杂数组