我尝试使用json_decode来解码包含带逗号的单词和带双引号的单词的json:
{"wordsFont":"Times New Roman","nameList":["Overflow ,","Stack ""]}
json_decode失败所以我试图格式化字符串以使用以下函数来转义引号:
function fixDoubleQuotedJSON($broken_json)
{
return str_replace('""','\""',$broken_json);
}
但它只是逗号和双引号位于单词末尾的情况。结果:
{"wordsFont":"Times New Roman","nameList":["Overflow \,","Stack \""]}
正确解码但我需要找到一种方法来做任何双引号和逗号的放置。有什么建议吗?
编辑:这是数据库中的初始值:
{\"wordsFont\":\"Times New Roman\",\"nameList\":[\"Overflow ,\",\"Stack \\\"\"]}
我无法将生成它的代码更改为数据库
答案 0 :(得分:1)
我的问题是通过用urldecode()替换stripslashes()来解决的。 发生这种情况是因为有人以前使用过urlencode()。
$jsonFix = urldecode($json);
$json = json_decode($jsonFix, true);