我有 php 脚本,它从数据库返回数据并创建一个 json 样式的文本,如下所示:
{ "company" : [ { "value" : "siemens" }, { "value" : "cocacola" } ], "order" : [ { "value" : "John" }, { "value" : "Mary" } ], "mob" : [ { "value" : "123123123" }, { "value" : "123123123" } ] }
我像这样通过jquery解析它:
$.ajax({
type: "POST",
url: dir + "get_data.php", // this on gets text you can se above
success: function(html){
try {
var autocomplete = $.parseJSON(html);
}
catch(e) {
alert('invalid json');
$('#content').append(html)
}
}
})
一段时间以来,它返回“无效的 json”,尽管数据库结构或代码中的任何内容都没有改变。早些时候它工作得很好 - 非常完美!更改的所有内容都只是来自用户的新条目,因为数据将自动完成字段。我的第一个想法是用户输入了一些未正确过滤的特殊符号,即引号或大括号。我通过http://json-validator.com/和http://jsonlint.com/检查了它——他们都说它是正确的 json。下一个想法是不知何故 json 文件太大而无法解析,它会解析其中的一部分。您有什么想法吗?
解决方案:
一些用户输入了混淆 json 解析的数据库制表符号。如果你有类似的问题 - 首先从它清理数据库并设置某种过滤器来输入数据。祝你好运。关闭!