首页 > 解决方案 > php:包含 HTML 的 json_decode 无法解码

问题描述

我需要使用客户的 API 来加载仅包含以下内容的 JSON:

{"html" : "foo"}

该 API 正在从其他服务中使用,所以我很确定它是有效的。

但是,当尝试使用 json_decode 对其进行解码时,我总是得到一个空字符串,这意味着它无效。我发现我需要通过替换来“修复”JSON-String:

$json = str_replace("\\>", "\\\\>", $json); // \> = invalid json

它主要适用于每个请求,但不适用于某些其他请求,但调试起来非常棘手,我无法想象替换是正确的方法。我将如何将json字符串转换为有效字符串的简单方法?

谢谢

标签: phphtmljson

解决方案


好的,我可以找出问题所在:

HTML 在结束标记中包含反斜杠,例如<br\> 您需要像这样替换它们:

$json = str_replace("\\>", "\\\\>", $json);

和 json_decode 将工作


推荐阅读