【发布时间】:2012-09-25 04:42:39
【问题描述】:
我正在尝试使用 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 \\\"\"]}
我无法将生成它的代码更改为数据库
【问题讨论】:
-
您最好修复任何生成非 JSON 文本的内容。如果正确构建,多余的引号将被转义,您可以按预期 json_decode() 它。
-
@MarcB 请看我的编辑。这是初始值
-
我唯一的建议是解决问题或让创建它的人修复它:-)