从 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中的额外字符,从斜杠分隔的URL中提取参数值
无法从添加/删除文本字段中的文本字段值形成 JSON 字符串对象